Android Studio: jar als Bibliothek hinzufügen?

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?

Lösung

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:

  1. Lege das Gson jar (in meinem Fall gson-2.2.4.jar) in den libs Ordner

  2. Rechtsklick darauf und 'Als Bibliothek hinzufügen'

  3. 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+

  4. 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]

Kommentare (20)

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.

Kommentare (4)

Unter Mac OS X:

  1. Jar als Bibliothek hinzufügen (Jar auf Libs ziehen, Rechtsklick auf Add as Lib)

  2. Kompilieranweisung zu "build.grade" hinzufügen

  3. Installiere gradle v1.6 (benutze homebrew)

  • brew install gradle
  • gradle -v
  • wenn nicht v1.6, upgrade homebrew
  1. gradle clean (rebuild android hat nicht funktioniert)

Damit habe ich das Problem gelöst.

Kommentare (0)