J'ai récemment téléchargé Android Studio pour développer des applications Android (je viens de l'Eclipse), et je vais avoir des problèmes à l'aide de bibliothèques externes et/ou externe, les fichiers JAR côtés de mon propre projet. REMARQUE: les tests suivants ont été effectués sur un nouveau projet d'application créé à partir de zéro dans Android Studio.
Exemple 1: POT de l'Importation.
- Télécharger une nouvelle copie de la Admobs SDK de Google.
- Exemplaire de la bibliothèque bocal
GoogleAdMobAdsSdk-6.4.1.jar
du projet /libs/ dossier. - Dans l'explorateur de projets, cliquez-droit sur le nouveau library.jar et cliquez sur 'Ajouter que la Bibliothèque".
Techniquement, à ce point, tout fonctionne, les importations de travail, la mise en page de l'éditeur montre un aperçu de l' AdView
widget, et tout ça. Le seul problème est qu'il n'est pas compilé avec succès.
Journal de la console:
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'.
J'ai essayé de courir gradlew compileDebug --stacktrace
, et le problème semble être que le en dépit d'être en mesure d'importer les classes sucesfully à la fois le code et la conception de l'éditeur, au moment de la compilation, il ne peut pas résoudre les importations. Voici la partie pertinente du journal: (plein stacktrace ici)
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
Mais encore une fois, les importations fonctionnent bien dans l'éditeur, et la dépendance est là:
Il est également intéressant de noter que, sans essayer d'ajouter une bibliothèque/JAR, les projets compile très bien.
J'ai ensuite essayé de l'édition de la construction.gradle fichier à inclure la nouvelle lib comme ceci:
dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}
Cette fois, il n'a compiler avec succès, mais l'application de la force se ferme, car apparemment il ne peut pas trouver une classe spécifique de la lib dans le dossier de candidature.
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk
Des idées? Merci!