Ich habe vor kurzem Android Studio heruntergeladen, um Android-Anwendungen zu entwickeln (ich komme von Eclipse), und ich habe Probleme bei der Verwendung externer Bibliotheken und/oder externer JAR-Dateien neben meinem eigenen Projekt. Hinweis: Die folgenden Tests wurden mit einem neuen Anwendungsprojekt durchgeführt, das von Grund auf in Android Studio erstellt wurde.
Beispiel 1: JAR-Import.
Laden Sie eine neue Kopie des Admobs SDK von Google herunter.
Kopieren Sie die Bibliothek jar GoogleAdMobAdsSdk-6.4.1.jar
in das Projekt's /libs/ Ordner.
Klicken Sie im Projektexplorer mit der rechten Maustaste auf die neu hinzugefügte library.jar und klicken Sie auf 'Als Bibliothek hinzufügen'.
Technisch gesehen funktioniert jetzt alles, Importe funktionieren einwandfrei, der Layout-Editor zeigt eine Vorschau des AdView
Widgets und all das. Das einzige Problem ist, dass es sich nicht erfolgreich kompilieren lässt.
Log von der Konsole:
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'.
Ich habe versucht, gradlew compileDebug --stacktrace
, und das Problem scheint zu sein, dass trotz der Lage, die Klassen erfolgreich in beiden Code & Design-Editor zu importieren, zur Kompilierzeit, es kann nicht die Importe auflösen. Hier ist der relevante Teil des Protokolls: (vollständiger Stacktrace hier)
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
Aber auch hier funktionieren die Importe im Editor gut, und die Abhängigkeit ist vorhanden:
Es ist auch erwähnenswert, dass das Projekt ohne den Versuch, eine Bibliothek/JAR hinzuzufügen, problemlos kompiliert werden kann.
Ich habe dann versucht, die build.gradle-Datei zu bearbeiten, um die neue Lib wie folgt einzuschließen:
dependencies {
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
}
Diesmal war die Kompilierung erfolgreich, aber die Anwendung wird nun zwangsweise geschlossen, da sie offenbar eine bestimmte Klasse der Bibliothek im Anwendungspaket nicht finden kann.
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ads.AdView" on path: /data/app/com.foo.test-1.apk
Hat jemand eine Idee?
Also,
Folgende Schritte sind zu befolgen, um ein JAR erfolgreich in Ihr Projekt mit Android Studio 0.1.1 zu importieren:
compile files('libs/android-support-v4.jar', 'libs/GoogleAdMobAdsSdk-6.4.1.jar')
'C:\Users\Username\AndroidStudioProjects\MyApplicationProject\'
gradlew clean
ein und warten Sie, bis es fertig ist.Sie exportieren das Projekt aus Eclipse und importieren Sie dann das Projekt von Android Studio, sollte dies Ihr Problem zu lösen, öffnen Sie ein Eclipse-Projekt, ohne es zu importieren von Android Studio können Sie Probleme verursachen, schauen Sie sich: (Entschuldigen Sie meine Sprache, ich spreche Spanisch.) http://developer.android.com/intl/es/sdk/installing/migrate.html