Android Studio: Jar toevoegen als bibliotheek?

Ik probeer de nieuwe Android Studio te gebruiken, maar ik krijg het niet aan de praat.

Ik'gebruik de Gson bibliotheek om JSON-objecten te serialiseren/deserialiseren. Maar de bibliotheek is op een of andere manier niet opgenomen in de build.

Ik had een nieuw project gemaakt met alleen een MainActivity. Kopieerde gson-2.2.3.jar in de /libs map en voegde het toe als een bibliotheek afhankelijkheid (rechter muisklik->Toevoegen als bibliotheek). Dit bevat de jar in android studio zodat er vanuit de bronbestanden naar verwezen kan worden.

Wanneer ik het project probeer te draaien kan het niet compileren dus heb ik toegevoegd:

compile files('libs/gson-2.2.3.jar')

toegevoegd aan de afhankelijkheden in de .gradle file. Daarna compileert het correct maar bij het uitvoeren van de applicatie krijg ik een ClassDefNotFoundException.

Weet iemand wat ik verkeerd doe?

Oplossing

Ik heb vele uren met hetzelfde geworsteld, in een poging om het Gson potje aan de praat te krijgen. Ik heb het eindelijk gekraakt - hier zijn de stappen die ik nam:

  1. Zet de Gson jar (in mijn geval, gson-2.2.4.jar) in de libs map

  2. Klik er met de rechtermuisknop op en druk op 'Toevoegen als bibliotheek'

  3. Zorg ervoor dat compile files('libs/gson-2.2.4.jar') in je build.gradle bestand staat (of compile fileTree(dir: 'libs', include: '*.jar') als je veel jar files gebruikt)

    Bewerken : Gebruik implementatie bestanden('libs/gson-2.2.4.jar') (of implementatie fileTree(dir: 'libs', include: '*.jar')) in Android Studio 3.0+

  4. Doe een clean build (je kunt dit waarschijnlijk prima doen in Android Studio, maar om zeker te zijn navigeerde ik in een terminal naar de hoofdmap van mijn app en typte gradlew clean. Ik ben op Mac OS X, het commando kan anders zijn op jouw systeem

Nadat ik de bovenstaande vier had gedaan, begon het prima te werken. Ik denk dat de 'Toevoegen als bibliotheek'-stap degene was die ik eerder had gemist, en die werkte ook niet totdat ik hem had opgeschoond.

[Edit - de build.gradle stap toegevoegd die ook nodig is zoals anderen al aangaven].

Commentaren (20)

IIRC, simpelweg "Add as library" gebruiken is'niet genoeg om het met het project te compileren.

Kijk in Intellij's help over het toevoegen van bibliotheken aan een project

Het deel dat je het meest zou moeten interesseren is dit:

(In File > Project Structure) Open de module instellingen en selecteer het tabblad Dependencies.

Op het tabblad Dependencies, klik op add en selecteer Library.

Selecteer in het dialoogvenster Choose Libraries (Bibliotheken kiezen) één of meer bibliotheken en klik op Add Selected (Geselecteerd toevoegen).

Als de bibliotheek niet verschijnt in het dialoogvenster, voeg het toe in de Bibliotheken instellingen, rechts onder Modules.

U zou compileer bestanden() niet meer hoeven toe te voegen, en de bibliotheek zou goed aan uw project moeten worden toegevoegd.

Commentaren (4)

Op Mac OS X:

  1. Voeg jar toe als bibliotheek (sleep jar naar libs, klik rechts voeg toe als lib)

  2. Voeg compileer verklaring toe aan build.grade

  3. Installeer gradle v1.6 (gebruik homebrew)

  • brew installeer gradle
  • gradle -v
  • indien niet v1.6, upgrade homebrew
  1. gradle clean (android herbouwen werkte niet)

Dit loste me op.

Commentaren (0)