Android Studio: Lägg till burk som bibliotek?

Ozzie 08/31/2017. 30 answers, 600.958 views
android android gradle android-studio android-studio dependency-management

Jag försöker använda den nya Android Studio men jag verkar inte få det att fungera korrekt.

Jag använder Gson biblioteket för att serialisera / deserialisera JSON-objekt. Men biblioteket är på något sätt inte med i byggnaden.

Jag skapade ett nytt projekt med just a MainActivity . Kopierad gson-2.2.3.jar i mappen / libs och lägger till den som ett bibliotek (högerklick-> Lägg till som bibliotek). Detta inkluderar burken i android studio så det kan refereras från källfilerna.

När jag försöker köra projektet kan det inte kompilera så jag tillade:

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

till beroenden i .gradle-filen. Därefter sammanställer den korrekt men när jag kör programmet får jag en ClassDefNotFoundException .

Vet någon vad jag gör fel?

30 Answers


lepoetemaudit 07/12/2016.

Jag har kämpat med samma sak i många timmar, försöker få Gson-burken att fungera, inte mindre. Jag slog äntligen det - här är de steg jag tog:

  1. Sätt Gson-burken (i mitt fall, gson-2.2.4.jar ) i libs mappen
  2. Högerklicka på det och klicka på "Lägg till som bibliotek"
  3. Se till att compile files('libs/gson-2.2.4.jar') finns i din build.gradle fil (eller compile fileTree(dir: 'libs', include: '*.jar') om du använder många burkfiler )
  4. Gör en ren byggnad (du kan förmodligen göra det bra i Android Studio, men för att se till att jag navigerade i en terminal till rotmappen i min app och gradlew clean . Jag är på Mac OS X, kommandot kan skilja sig från ditt system

Efter att jag gjorde ovanstående fyra började det fungera bra. Jag tror att "Lägg till som bibliotek" steg var det jag tidigare missat, och det fungerade inte förrän jag rengjorde det heller.

[Redigera - lagt till build.gradle steget som också är nödvändigt som andra har påpekat]

5 comments
6 František Žiačik 05/25/2013
gradlew clean hjälpte mig också. Tack så mycket!
159 J c 05/27/2013
Om du inte vill uttryckligen lägga till en rad för varje burkfil: compile fileTree(dir: 'libs', include: '*.jar')
61 Joe 07/17/2013
Jag rekommenderar att du utnyttjar gradviss övergående beroendehantering och ladda ner gson från mavenCentral () (om du behöver en internetanslutning är acceptabelt. Lägg bara till repositories { mavenCentral() } och ersätt dina compile files(...) linje med compile 'com.google.code.gson:gson:2.2.4' och gradvis kommer automatiskt ladda ner och hantera burkfilen för dig. Detta gör det möjligt för SCM att spåra endast källkodsfiler och inte bibliotek.
29 Yster 08/10/2014
Jag får inte alternativet Lägg till som bibliotek i steg 2.
5 Brian Marick 01/16/2015
I Android Studio 1.0.2 behövs inte steg 2 och 3 eftersom den här raden redan finns i standard build.gradle : compile fileTree (dir: 'libs', inkluderar: ['* .jar'])

ZenBalance 12/18/2015.

Här är anvisningarna för att lägga till en lokal burkfil som ett bibliotek till en modul:

  1. Skapa en "libs" -mapp på översta nivån i modulkatalogen (samma katalog som innehåller "src" -katalogen)

  2. I build.gradle file lägger du till följande så att din beroendestängning har:

    dependencies {
        // ... other dependencies
        compile files('libs/')
    } 
  3. Android Studio borde redan ha installerat en gradvis wrapper. Från kommandoraden navigerar du till den översta nivån på ditt projekt (katalogen som har en gradlew fil).

    Kör ./gradlew assemble . Detta borde kompilera projektet med biblioteket. Det kan hända att du behöver fixa fel i din build.gradle-fil efter behov.

  4. För att Android Studio ska kunna identifiera lokala burkfiler som bibliotek för stöd medan du kodar i IDE måste du ta några steg:

    4,1. Högerklicka på modulen i den vänstra panelen och välj Open Library Settings .

    4,2. Välj Libraries den vänstra panelen i dialogrutan.

    4,3. Klicka på + tecknet ovanför panelen andra från vänster -> Java

    Meny

    4,4. Välj din lokala burk och lägg till den i projektet.

  5. Du kan behöva springa ovanstående ./gradlew kommando ytterligare en gång

3 comments
4 Peter Arandorenko 01/19/2014
För mig gjorde steg # 2 det. Tack.
Phil Freihofner 05/01/2015
Detta fungerade för mig. Jag har Android Studio version 1.2 Bygg 141.1890965, på Ubuntu. Varför säger du "från Android Studio 2.5"? Är det en annan version på Windows / Mac? (1a) Att hitta detta var svårt. Kombinationsrutan ligger längst upp till vänster om projektstrukturområdet. Behöver välja "Projekt" i motsats till "Android" och expandera "app". (1b) Inget "add" -alternativ kom upp, men "Paste" fungerade. (2) Jag hade en rad "kompilera fileTree (dir: 'libs', inkludera: ['* .jar'])", men ändå var tvungen att lägga till din explicit enda rad. (4, 5) behövs inte en gång (3) gjort framgångsrikt. Tack!
Rahul Rastogi 05/18/2015
1 plus för de skärmdumpar som du lagt till.

Ganesh Pandey 09/06/2015.

Högerklicka på projektet i projektet

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done 

Följ skärmdumparna nedan:

1:

Steg 1

2:

skriv in bildbeskrivningen här

3:

skriv in bildbeskrivningen här

Du kommer att se detta:

skriv in bildbeskrivningen här

5 comments
Ganesh Pandey 09/20/2016
@CamConnor Jag tror också det .. Andra svar är föråldrade
sudobomb 09/20/2016
Ja det borde vara det accepterade svaret
Alessandro 11/23/2016
Detta är svaret
1 Dave 12/18/2016
Men det är inte erkänt som bibliotek. Till exempel, andriod studio editor: försök att importera ett paket i den importerade burken, inte igenkänd.
Dave 12/18/2016
Det gick inte att hitta ett sätt att ta bort den importerade modulen på det här sättet.

saneryee 05/23/2017.

I Android Stuido gillar jag Gradle att hantera Gson lib.

Lägg till nedan beroende i din build.gradle-fil.

repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'} 

Allt är ok.

Du kan också se det här inlägget. Det bästa sättet att integrera tredjepartsbibliotek i Android-studio

4 comments
2 j2emanue 11/07/2014
Detta är det rätta sättet med centralrepa.
Gary Drocella 05/04/2015
Denna metod är bäst eftersom det använder maven.
1 Kitalda 06/16/2015
Kom bara ihåg att uppdatera versionsnumret till det senaste :) Från och med nu är det 2.3.1, men kolla länken
Sam 11/23/2016
Det här är det enda som fungerar!

Jukurrpa 09/02/2015.

IIRC, helt enkelt med "Lägg till som bibliotek" räcker inte för att det ska kompileras med projektet.

Kontrollera Intellijs hjälp att lägga till bibliotek till ett projekt

Den del som borde intressera dig mest är detta:

(I File > Project Structure ) Öppna modulinställningarna och välj fliken Beroende.

På fliken Tillämpningar klickar du på Lägg till och väljer Bibliotek.

I dialogrutan Välj bibliotek väljer du ett eller flera bibliotek och klickar på Lägg till valda.

Om biblioteket inte dyker upp i dialogrutan lägger du till det i bibliotekets inställningar, precis under modulerna.

Du behöver inte lägga till compile files() längre, och biblioteket ska läggas till korrekt i ditt projekt.

5 comments
Ozzie 05/17/2013
Lägg till som bibliotek som redan läggs till på burken på samma sätt. Så jag tycker att resultatet är detsamma. Jag ska prova det senare.
jhirsch 05/18/2013
Lägg till som bibliotek gör det här med framgång - Jag är i samma båt som du Ozzie - EXACT samma problem.
Jukurrpa 05/18/2013
Okej, jag trodde att Lägg till som bibliotek bara lagt till det i bibliotekslistan och lade inte till det för modulberoende.
Matt Holgate 10/22/2013
När jag försökte detta fann jag att det tillade kompilera filer () -linjerna till min build.gradle-fil, men det verkade att använda absoluta banor till biblioteken (/libs/foo.jar). Jag ändrar dessa till relativa sökvägar (libs / foo.jar), vilket fixade problemet för mig.
1 android learner 03/12/2015
tack .. det räddade min dag

Helzgate 07/29/2016.

Alla dessa lösningar är föråldrade. Det är verkligen enkelt nu i Android Studio:

Fil> Ny modul ...

Nästa skärm ser konstig ut, som att du väljer lite widget eller något men håller det på den första bilden och under rullning och hittar "Importera JAR eller .AAR-paket"

Ta sedan Project Structure från File menu. Välj app från det öppnade fönstret och välj sedan dependencies , tryck sedan på green plus button , välj module dependency och välj sedan modulen du importerade och tryck sedan på OK

2 comments
Gary Drocella 05/04/2015
Jag tror att använda maven skulle fortfarande vara den bättre lösningen speciellt för stora projekt, det vill säga tillhandahålls av saneryee.
Daniele Testa 10/11/2015
Även detta verkar vara föråldrad. Lägg helt enkelt din .jar-fil i din "libs" -katalog och det kommer automatiskt att bli kompilerat till ditt projekt. Det finns redan en standardregeluppsättning i Android Studio 1.4 för att inkludera alla * .jar-filer från "libs" dir.

user2084396 10/11/2013.

"kompilera filer ..." brukade fungera för mig, men inte mer. efter mycket smärta fann jag att använda detta istället fungerar:

compile fileTree(dir: 'libs', include: '*.jar')

Jag har ingen aning om varför det gjorde skillnad, men i alla fall jobbar den fula saken nu.

1 comments
1 scottyab 07/09/2014
Det här fungerar för mig men hittades nyligen ibland AS tar inte upp nya / uppdaterade burkar tills du gör en gradvis synkronisering.

Vinayak Bevinakatti 05/12/2017.

Enkla steg för att lägga till externt bibliotek i Android Studio

  1. Om du befinner dig i Android View i projektutforskare ändrar du den till Project enligt nedan

skriv in bildbeskrivningen här

  1. Högerklicka på önskad modul där du vill lägga till det externa biblioteket och välj sedan New > Directroy och namnge det som " libs "
  2. blah_blah.jar nu blah_blah.jar till " libs " -mappen
  3. Högerklicka på blah_blah.jar, välj sedan " Add as Library.. ". Detta kommer automatiskt att läggas till och komma in i build.gradle som compile files('libs/blah_blah.jar') och synkronisera graden. Och du är klar

Please Note : Om du använder tredjepartsbibliotek är det bättre att använda dependencies där Gradle-script automatiskt laddar ner JAR och beroendet JAR när gradvis script körs.

Ex: kompilera 'com.google.android.gms: play-services-ads: 9.4.0'

Läs mer om Gradle Dependency Mangement

1 comments
Saurabh Bhandari 05/11/2017
Det här är bästa sättet att lägga till burkfiler som bibliotek

sansa 07/24/2015.
  1. Hämta bibliotekets fil från webbplatsen
  2. Kopiera från Windows utforska
  3. Klistra in till lib-mappen från Project Explorer
  4. Ctrl + Alt + Shift + S öppnar projektstruktur
  5. Välj Fliken Dependenser, lägg till filen med +
  6. Verktygsfält Synkronisera projekt med gradvis fil genom att använda knappen

Det löste mitt problem. Försök, om någon vill ha mer information, låt mig veta.


Fergara 09/11/2015.

Jag gjorde det till att arbeta genom att bara lägga till en rad för att bygga.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
    compile 'com.google.code.gson:gson:2.3.1'   ----------> I added this one
    } 

Glöm inte att klicka på "Synkronisera nu" i det övre högra hörnet.

Jag använder Android Studio 1.0.1.

1 comments
Thufir 07/08/2017
skulle du utveckla vad fileTree linjen gör?

Sandeep 10/29/2015.

1. Sätt burken (i mitt fall, gson-2.2.4.jar ) i libs-mappen.

2. Se till att kompilera filer ( libs/gson-2.2.4.jar ) finns i din build.gradle-fil.

3. Klicka nu på "Sync Project with Gradle Files" (Vänster till AVD Manager Button på topplistan).

Efter att jag gjorde ovanstående tre började det fungera bra.


A.B. 07/23/2016.

Jag hittade Dependency Manager i Android Studio ganska praktiskt och kraftfull för att hantera tredjepartsberoende (som gson nämns här). Ge steg för steg guide som fungerade för mig (OBS! Dessa steg testas för Android Studio 1.6 och vidare versioner på Windows-plattformen).

Step-1: Gå till "Bygga> Redigera bibliotek och beroenden ..." Det skulle öppna dialogrutan "Projektstruktur"

skriv in bildbeskrivningen här

Step-2: Välj "app" och välj sedan fliken "Beroende". Välj sedan "Lägg till> 1 Biblioteksberoende"

skriv in bildbeskrivningen här

Step-3: Dialogrutan "Bibliotekets beroende" visas, ange "gson" i sökningen och tryck på "sökknappen"

skriv in bildbeskrivningen här

Step-4: Det önskade beroendet skulle visas i söklistan, välj com.google.code.gson: gson: 2.7 (det här är den senaste versionen när jag skrev svaret), tryck på OK

skriv in bildbeskrivningen här

Tryck på OK på dialogrutan "Projektstruktur". Gradle skulle uppdatera dina byggskript i enlighet med detta.

skriv in bildbeskrivningen här

Hope this would help :)

2 comments
A.B. 08/23/2016
Jag har hittat något problem med detta tillvägagångssätt, har arbetat med app som använder commons-io-2.5. När appen laddades upp till Google Developer Console visas den 0 enheter som stöds för den signerade apk. Efter uttömmande utredning fann jag att jag måste placera burkfilen under app / libs / commons-io-2.5.jar och uppdatera beroenden i grale som denna "kompilera filer (" libs / commons-io-2.5.jar ") ', inte säker på vad jag har gjort fel här och varför dokumentationen inte täcker detta.
imsrgadich 08/10/2017
Så här fungerar det. Alla andra svar fungerade inte. Android Studio 2.3.3

NarenderNishad 03/23/2015.

Hämta och kopiera din .jar fil i libs mappen och lägg till den här raden för att build.gradle:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3.1'
} 

Glöm inte att klicka på "Synkronisera nu"

Android Studio 1.1.0


Pankaj kumar 06/23/2015.

Till skillnad från Eclipse behöver vi inte ladda ner burk och lägga den i / libs-mapp. Gradle hanterar dessa saker vi behöver bara lägga till Gradle beroenden, Gradle hämtar det och lägger i gradle cache.

Vi måste lägga till beroende som:

beroenden {kompilera 'com.google.code.gson: gson: 2.2.4'}

det är det Men vi kan också ladda ner burk och lägg till det som bibliotek men den bästa praxis är att lägga till Gradle beroenden.

1 comments
1 chathura 08/26/2015
hur man känner till beroendet att lägga till? var kan jag hitta dem?

huseyin 01/20/2015.

Du kan göra detta med två alternativ.

första enkla sättet.

Kopiera .jar-filen till urklippet och lägg till den till libs-mappen. För att se libs-mappen i projektet, välj projektet från combobox ovanför mapparna.

högerklicka på .jar-filen och klicka på Lägg till som ett bibliotek, välj sedan en modul och sedan ok. Du kan se .jar-filen i build.gradle-filen inom beroendet block.

dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:appcompat-v7:21.0.3'
        compile project(':okhttp-2.0.0')
        compile 'com.google.code.gson:gson:2.3.1'
    } 

Andra sättet är det: Vi kan lägga till en .jar-fil i en modul genom att importera denna .jar-fil som en .jar-modul och lägg till den här modulen till vilken modul som helst.

importmodul ---> välj din .jar-fil -> än import som en .jar - skriv in bildbeskrivningen här

Därefter CTRL + ALT + SHIFT + S -> projektstark -> välj den modul du vill lägga till en burk -> Dependencendies -> Module Dependency. build.gradle av modulen uppdateras automatiskt. skriv in bildbeskrivningen här

1 comments
Aviv Ben Shabat 01/26/2015
Trevlig. en redigering - Det är "Ny modul" nu (Android Studio 1.0.1). "Importmodul" skickar dig till en annan guide.

Elshan 07/14/2016.

Ive gjort över 3 steps och dess charm för mig.

(I am using Android Studio 2.1.2)

skriv in bildbeskrivningen här

Step 1

  • Lägg till ditt jar package name (som exempel compile 'com.squareup.okhttp3:okhttp:3.3.1' ) till gradle build script under build.gradle(Module:app) .

skriv in bildbeskrivningen här

Step 2: Högerklicka på appmappen -> New -> Module

skriv in bildbeskrivningen här

Step 3: Klicka på Import JAR/.AAR Package sedan i paketet. som ett exempel: OkHttp.jar

skriv in bildbeskrivningen här


vuhung3990 01/30/2015.
menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar 

Aby Mathew 07/23/2015.

.jar filerna i libs mappen i Android-projektet.

compile fileTree(dir: 'libs', include: ['*.jar'])

den här raden av kod i appen graddle-filen kommer att göra resten.

Happy Coding :)


Skapa en mapp libs. Lägg till din .jar-fil. Högerklicka på den och du kommer att hitta tills burk som beroende. Klicka på det. Dess allt du behöver göra. Du kan hitta beroenden som läggs till i din build.gradle-fil.


idris yıldız 07/13/2015.

1) Skapa en "your_libs" -mapp i mappen Project / app / src.

2) Kopiera din burkfil till den här "your_libs" -mappen

3) I Android Studio, gå till Arkiv -> Projektstruktur -> Beroenden -> Lägg till -> Filberoende och navigera till din burkfil, som ska vara under 'src / your_libs'

3) Välj din burkfil och klicka på "Ok"

och sedan kan du se på din build.gradle så här: kompilera filer ('src / your_libs / your.jar')


mbo 07/13/2015.

I android Studio 1.1.0. Jag löste denna fråga genom att följa stegen:

1: Sätt jar-filen i libs-katalogen. (i Finder)

2: Öppna modulinställningar, gå till Dependencies, i vänstra nedre hörnet finns en plusknapp. Klicka på plusknappen och välj sedan "File Dependency". Här ser du jar-filen. Välj det och det är löst.


IntelliJ Amiya 12/02/2015.

Steg 1: Nu under din app folder bör du se libs , om du inte ser det, then create it .

Steg 2: Drag & Drop the .jar file here , du kanske får en snabbmeddelande "This file does not belong to the project" , klicka bara på OK knappen.

Steg 3: Nu ska du se jar file under libs folder , högerklicka på burkfilen och välj "Add as library", Click OK for prompt "Create Library"

Steg 4: Nu har denna jar lagts till.

skriv in bildbeskrivningen här


user2573236 07/11/2013.

På Mac OS X:

  1. Lägg till burk som bibliotek (dra burk till libs, högerklicka lägg till som lib)

  2. Lägg till kompileringsdeklaration för build.grade

  3. Installera gradle v1.6 (använd homebrew)

    • brygginstallationsgrad
    • gradle -v
    • om inte v1.6, uppgradera homebrew
  4. gradle clean (återuppbygga android fungerade inte)

Det här sorterade mig ut.


Christina 12/27/2014.

Som många tidigare påpekade ska du lägga till

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

till din build.gradle-fil.

Men jag har ett projekt i Android Studio som migrerades från Eclipse och i så fall heter "libs" -mappen "lib" så att jag kan ta bort "s" lösa problemet.


Binod 07/08/2014.

compile fileTree(dir: 'libs', include: '*.jar') fungerar bra men inte compile files(...) har testat med Studio Beta 0.8.1


iberodev 09/25/2014.

Mitt svar är i grund och botten samla några av de rätta men ofullständiga svaren som anges ovan.

  1. Öppna build.gradle
  2. Lägg till följande:

    dependencies {
    compile 'com.android.support:appcompat-v7:19.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3'
    } 

    Detta kommer att möjliggöra stöd för två olika sätt att lägga till beroende. compile fileTree(dir: 'libs', include: ['*.jar']) (som @Binod nämns) berättar kompilatorn att se under mappen libs för varje burk. Det är en bra metod att skapa en sådan mapp "libs" som innehåller de burkpaket som vår applikation behöver använda.

Men detta kommer också att möjliggöra stöd för Mavenberoende. 'com.google.code.gson:gson:2.3' (som nämns av @saneryee) Det är ett annat rekommenderat sätt att lägga till beroenden som finns i ett centralt fjärrförråd och inte i vårt / libs "lokala förråd". Det är i grund och botten att säga gradvis att leta efter den versionen av det paketet och det berättar kompilatorn att överväga det när man sammanställer projektet (med det i klassvägen)

PS: Jag använder båda


user2779311 02/01/2015.

För nyare Android 1.0.2 finns följande redan i din build.gradle-fil

kompilera fileTree (inkludera: ['* .jar'], dir: 'libs')

Lägg till bibliotekets burk i din libs-mapp -> högerklicka på biblioteket -> klicka lägg till som ett bibliotek -> det ber dig om att projektet lägger till det för -> välj ditt projekt-> klicka ok Följande rad läggs automatiskt till för att bygga .gradle

kompilera filer ("libs / android-query.jar")

Det gjorde det för mig. inget mer krävdes. jag har visat detta för android vattenbruk ett annat tredje part bibliotek för android.


parasrish 06/08/2015.
  1. Lades till "libs" -mappen på nivån av "app".
  2. Tillagt alla "burkarna" i detta projekt.
  3. Därefter valdes alla burkar, i "libs" -mappen,
  4. högerklicka på de markerade objekten och säg "lägg till bibliotek"
  5. då hittar du alternativen för expansion av burkar, inom projektutforskaren själv.

Jag observerade att "CTRL + ALT + SHIFT + S -> projektstruktur -> appmodul -> Dependencies" redan hade en post som "(dir: 'libs', inkluderar: '* .jar')" under " kompileringsalternativ ", i början. Och efter att ha lagt burken enligt de ovan angivna stegen, fick "build.gradle" inmatningarna för den nya tillfogade burken, själv.


Ranjith Kumar 05/11/2016.

I Android Studio 2.1 följer jag det här sättet,

Gå till app -> src-> main -> assets (om inte tillgänglig skapa det) -> sätt dina JAR-filer

skriv in bildbeskrivningen här

I din build.gradle lägg till beroende så här,

compile files('src/main/assets/jsoup.jar')
compile files('src/main/assets/org-apache-xmlrpc.jar')
compile files('src/main/assets/org.apache.commons.httpclient.jar')
compile files('src/main/assets/ws-commons-util-1.0.2.jar') 

Synkronisera nu. Nu är dina JAR-filer redo att använda.

2 comments
Deni Erdyneev 05/12/2016
Varför använder du inte libs-katalogen?
Ranjith Kumar 05/12/2016
@ErdeniErdyneev Jag ger ett annat tillvägagångssätt för att lagra burkfiler. varför använder jag inte tillgångar? några problem i mitt tillvägagångssätt? Jag är redo att rätta till misstag om jag har fel

user3686646 05/29/2014.

Gör det här :

Skapa libs-mapp under programmappen. Lägg till .jar-filer till libs-mappen. Lägg sedan till .jar-filer till appens build.gradle beroende. Slutligen synkroniseringsprojekt med Gradle-filer.

Related questions

Hot questions

Language

Popular Tags