Ich versuche, das neue Android Studio zu verwenden, aber ich kann nicht scheinen, um es richtig zu arbeiten.
I'm mit der Gson Bibliothek zu serialisieren/deserialisieren JSON-Objekte. Aber die Bibliothek irgendwie isn't in der Build enthalten.
Ich hatte ein neues Projekt mit nur einer MainActivity erstellt. Kopierte gson-2.2.3.jar in den Ordner /libs und fügte es als Bibliotheksabhängigkeit hinzu (Rechtsklick->Als Bibliothek hinzufügen). Dies schließt das jar in Android Studio ein, so dass es in den Quelldateien referenziert werden kann.
Wenn ich versuche, das Projekt auszuführen, kann es nicht kompiliert werden, also habe ich hinzugefügt:
compile files('libs/gson-2.2.3.jar')
zu den Abhängigkeiten in der .gradle-Datei. Danach kompiliert es korrekt, aber wenn ich die Anwendung ausführe, erhalte ich eine "ClassDefNotFoundException".
Weiß jemand, was ich falsch mache?
I've gewesen kämpfen mit der gleichen Sache für viele Stunden, versuchen, die Gson jar zu bekommen, nicht weniger zu arbeiten. Ich habe es endlich geknackt - hier sind die Schritte, die ich nahm:
Lege das Gson jar (in meinem Fall gson-2.2.4.jar
) in den libs
Ordner
Rechtsklick darauf und 'Als Bibliothek hinzufügen'
Stellen Sie sicher, dass compile files('libs/gson-2.2.4.jar')
in Ihrer build.gradle
Datei steht (oder compile fileTree(dir: 'libs', include: '*.jar')
wenn Sie viele jar Dateien verwenden)
Bearbeiten: Verwenden Sie Implementierungsdateien('libs/gson-2.2.4.jar')
(oder ImplementierungsdateiBaum(dir: 'libs', include: '*.jar')
) in Android Studio 3.0+
Führen Sie einen sauberen Build durch (Sie können dies wahrscheinlich problemlos in Android Studio tun, aber um sicherzugehen, navigierte ich in einem Terminal zum Root-Ordner meiner App und gab gradlew clean
ein. Ich arbeite mit Mac OS X, der Befehl könnte auf Ihrem System anders lauten
Nachdem ich die vier oben genannten Schritte durchgeführt hatte, funktionierte es einwandfrei. Ich glaube, der Schritt 'Als Bibliothek hinzufügen' war derjenige, den ich zuvor übersehen hatte, und er funktionierte auch nicht, bis ich ihn bereinigt hatte.
[Bearbeiten - fügte die build.gradle
Schritt, der auch notwendig ist, wie andere darauf hingewiesen haben]
IIRC, einfach mit "Add as library" isn' t genug für es mit dem Projekt zu kompilieren.
Lesen Sie Intellij's Hilfe über das Hinzufügen von Bibliotheken zu einem Projekt
Der Teil, der Sie am meisten interessieren sollte, ist dieser:
Öffnen Sie die Moduleinstellungen und wählen Sie die Registerkarte "Abhängigkeiten".
Auf der Registerkarte "Abhängigkeiten" klicken Sie auf "Hinzufügen" und wählen "Bibliothek".
Wählen Sie im Dialogfeld Bibliotheken auswählen eine oder mehrere Bibliotheken aus und klicken Sie auf Ausgewählte hinzufügen.
Wenn die Bibliothek nicht im Dialogfeld angezeigt wird, fügen Sie sie in den Bibliothekseinstellungen direkt unter Module hinzu.
Sie sollten nun nicht mehr compile files()
hinzufügen müssen, und die Bibliothek sollte ordnungsgemäß zu Ihrem Projekt hinzugefügt werden.
Unter Mac OS X:
Jar als Bibliothek hinzufügen (Jar auf Libs ziehen, Rechtsklick auf Add as Lib)
Kompilieranweisung zu "build.grade" hinzufügen
Installiere gradle v1.6
(benutze homebrew)
Damit habe ich das Problem gelöst.