Recientemente he descargado Android Studio para desarrollar aplicaciones Android (vengo de Eclipse), y estoy teniendo problemas al utilizar librerías externas y/o archivos JAR externos junto con mi propio proyecto. NOTA: las siguientes pruebas se realizaron en un nuevo proyecto de aplicación creado desde cero en Android Studio.
Ejemplo 1: Importación JAR.
Descargue una copia nueva del SDK de Admobs desde Google.
Copia el jar de la librería GoogleAdMobAdsSdk-6.4.1.jar
a la carpeta /libs/ del proyecto.
Técnicamente en este punto todo funciona, las importaciones funcionan bien, el editor de diseño muestra una vista previa del widget AdView
y todo eso. El único problema es que no compila correctamente.
Log de la consola:
Gradle:
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':APITests:compilePaidDebug'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Could not execute build using Gradle distribution 'http://services.gradle.org/distributions/gradle-1.6-bin.zip'.
He probado a ejecutar gradlew compileDebug --stacktrace
, y el problema parece ser que el a pesar de ser capaz de importar las clases con éxito tanto en el código & editor de diseño, en tiempo de compilación, no puede resolver las importaciones. Aquí'está la parte relevante del log: (stacktrace completo aquí)
java:6: error: package com.google.ads does not exist
import com.google.ads.AdRequest;
java:7: error: package com.google.ads does not exist
import com.google.ads.AdView;
java:11: error: cannot find symbol
AdView mAdView;
symbol: class AdView
location: class MainActivity
java:22: error: cannot find symbol
mAdView = (AdView)this.findViewById(R.id.adView);
symbol: class AdView
location: class MainActivity
java:23: error: cannot find symbol
mAdView.loadAd(new AdRequest());
symbol: class AdRequest
location: class MainActivity
5 errors
:Test:compileDebug FAILED
Pero de nuevo, las importaciones funcionan bien en el editor, y la dependencia está ahí:
También vale la pena señalar que sin intentar añadir una biblioteca/JAR, los proyectos compilan bien.
Luego traté de editar el archivo build.gradle para incluir la nueva lib como esta:
dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}
Esta vez, lo hizo compilar con éxito, pero la aplicación ahora las fuerzas se cierra, ya que al parecer, no puede encontrar una clase específica de la lib en el paquete de la aplicación.
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk
¿Alguna idea?
Así que..,
Pasos a seguir para importar un JAR con éxito a tu proyecto usando Android Studio 0.1.1:
compilar archivos('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
'C:\Users\Username\AndroidStudioProjects\MyApplicationProject'
gradlew clean
, espere hasta que'termine.exportas el proyecto desde Eclipse y luego importas el proyecto desde Android Studio, esto deberia solucionar tu problema, abrir un proyecto de eclipse sin importarlo desde Android Studio te puede causar problemas, mira: (Disculpa mi idioma, hablo español). http://developer.android.com/intl/es/sdk/installing/migrate.html