Android Studio: Add jar as library?

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

I'm trying to use the new Android Studio but I can't seem to get it working correctly.

I'm using the Gson library to serialize/deserialize JSON-objects. But the library somehow isn't included in the build.

I created a new project with just a MainActivity. Copied gson-2.2.3.jar in the /libs folder and added it as a library (right click->Add as library). This includes the jar in android studio so it can be referenced from the source files.

When I try to run the project it cannot compile so I added:

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

to the dependencies in de .gradle file. After that it compiles correctly but when running the application I get a ClassDefNotFoundException.

Does anyone know what I'm doing wrong?

30 Answers


lepoetemaudit 07/12/2016.

I've been struggling with the same thing for many hours, trying to get the Gson jar to work no less. I finally cracked it – here are the steps I took:

  1. Put the Gson jar (in my case, gson-2.2.4.jar) into the libs folder
  2. Right click it and hit 'Add as library'
  3. Ensure that compile files('libs/gson-2.2.4.jar') is in your build.gradle file (or compile fileTree(dir: 'libs', include: '*.jar') if you are using many jar files)
  4. Do a clean build (you can probably do this fine in Android Studio, but to make sure I navigated in a terminal to the root folder of my app and typed gradlew clean. I'm on Mac OS X, the command might be different on your system

After I did the above four, it started working fine. I think the 'Add as library' step was the one I'd previously missed, and it didn't work until I cleaned it either.

[Edit - added the build.gradle step which is also necessary as others have pointed out]

5 comments
6 František Žiačik 05/25/2013
gradlew clean helped me too. Thanks a lot!
159 J c 05/27/2013
If you don't want to have to explicitly add a line for each jar file: compile fileTree(dir: 'libs', include: '*.jar')
61 Joe 07/17/2013
I would recommend taking advantage of gradle's transient dependency management and download gson from mavenCentral() (if requiring an internet connection is acceptable. Simply add repositories { mavenCentral() } and replace your compile files(...) line with compile 'com.google.code.gson:gson:2.2.4' and gradle will automatically download and manage the jar file for you. This allows SCM to track only source code files and not libraries.
29 Yster 08/10/2014
I don't get the Add as Library option in step 2.
5 Brian Marick 01/16/2015
In Android Studio 1.0.2, steps 2 and 3 are not needed because this line is already in the default build.gradle: compile fileTree(dir: 'libs', include: ['*.jar'])

ZenBalance 12/18/2015.

Here are the instructions for adding a local jar file as a library to a module:

  1. Create a 'libs' folder in the top level of the module directory (the same directory that contains the 'src' directory)

  2. In the build.gradle file add the following so that your dependencies closure has:

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
  3. Android Studio should have already setup a gradlew wrapper. From the command line, navigate to the top level of your project (the directory that has a gradlew file).

    Run ./gradlew assemble. This should compile the project with the library. You may need to fix errors in your build.gradle file as necessary.

  4. In order to have Android Studio recognize the local jar files as libraries for support while coding in the IDE, you need to take a few more steps:

    4.1. Right click on the module in the left hand panel and choose Open Library Settings.

    4.2. On the left panel of the dialog, choose Libraries.

    4.3. Click the + sign above the panel second from the left -> Java

    Menu

    4.4. Select your local jar and add it to the project.

  5. You may need to run the above ./gradlew command one more time

3 comments
4 Peter Arandorenko 01/19/2014
For me step #2 did it. Thanks.
Phil Freihofner 05/01/2015
This worked for me. I have Android Studio version 1.2 Build 141.1890965, on Ubuntu. Why do you say "as of Android Studio 2.5"? Is it a different version on Windows/Mac? (1a) Finding this was hard. Combo box is at top left of project structure area. Need to select "Project" as opposed to the "Android" and expand the "app". (1b) No "add" option came up, but "Paste" worked. (2) I had a line "compile fileTree(dir: 'libs', include: ['*.jar'])", but still had to add your explicit single line. (4, 5) not needed once (3) done successfully. Thanks!
Rahul Rastogi 05/18/2015
1 plus for the screenshots that u added.

Ganesh Pandey 09/06/2015.

In the project right click

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

Follow the screenshots below:

1:

Step 1

2:

enter image description here

3:

enter image description here

You will see this:

enter image description here

5 comments
Ganesh Pandey 09/20/2016
@CamConnor i also think so.. Other answers are outdated
sudobomb 09/20/2016
Yes this should be the accepted answer
Alessandro 11/23/2016
This's THE answer
1 Dave 12/18/2016
But it is not recognized as libraray. For example, andriod studio editor: try to import a package in the imported jar, not recognized.
Dave 12/18/2016
Could not find a way to remove the imported module in this way.

saneryee 05/23/2017.

In Android Stuido, I like use Gradle to manage Gson lib.

Add below dependency in your build.gradle file.

repositories {mavenCentral()}

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

Everything is OK.

You can also see this post.The best way to integrate third party library in Android studio

4 comments
2 j2emanue 11/07/2014
this is the correct way using central repo.
Gary Drocella 05/04/2015
This method is the best because it's using maven.
1 Kitalda 06/16/2015
Just remember to update the version number to the latest :) As of now that is 2.3.1, but check link
Sam 11/23/2016
This s the only thing that works!

Jukurrpa 09/02/2015.

IIRC, simply using "Add as library" isn't enough for it to compile with the project.

Check Intellij's help about adding libraries to a project

The part that should interest you the most is this:

(In File > Project Structure) Open the module settings and select the Dependencies tab.

On the Dependencies tab, click add and select Library.

In the Choose Libraries dialog, select one or more libraries and click Add Selected.

If the library doesn't show up in the dialog, add it in the Libraries settings, right below Modules.

You shouldn't need to add compile files() anymore, and the library should be properly added to your project.

5 comments
Ozzie 05/17/2013
Add as library already add's the jar in the same way. So i think the result is the same. I'll try it later.
jhirsch 05/18/2013
Add as library does do this successfully - I'm in the same boat as you Ozzie - EXACT same problem.
Jukurrpa 05/18/2013
Alright, I thought Add as library only added it to the library list and did not add it as to module dependencies.
Matt Holgate 10/22/2013
When I tried this, I found it did add the compile files() lines to my build.gradle file, but it seemed to use absolute paths to the libraries (/libs/foo.jar). I change these to relative paths (libs/foo.jar), which fixed the problem for me.
1 android learner 03/12/2015
thank you.. its saved my day

Helzgate 07/29/2016.

All these solutions are outdated. It's really easy now in Android Studio:

File > New Module...

The next screen looks weird, like you are selecting some widget or something but keep it on the first picture and below scroll and find "Import JAR or .AAR Package"

Then take Project Structure from File menu.Select app from the opened window then select dependencies ,then press green plus button ,select module dependency then select module you imported then press OK

2 comments
Gary Drocella 05/04/2015
I think using maven would still be the better solution especially for large scale projects, that is, provided by saneryee.
Daniele Testa 10/11/2015
Even this seems to be outdated. Simply put your .jar file in your "libs" directory and it will auto-magically be compiled to your project. There is already a default rule setup in Android Studio 1.4 to include all *.jar files from the "libs" dir.

user2084396 10/11/2013.

'compile files...' used to work for me, but not any more. after much pain, I found that using this instead works:

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

I have no idea why that made a difference, but, at least the damn thing is working now.

1 comments
1 scottyab 07/09/2014
This works for me however recently found sometimes AS doesn't pick up new/updated jars until you do a gradle sync.

Vinayak Bevinakatti 05/12/2017.

Easy steps to add external library in Android Studio

  1. If you are in Android View in project explorer, change it to Project view as below

enter image description here

  1. Right click the desired module where you would like to add the external library, then select New > Directroy and name it as 'libs'
  2. Now copy the blah_blah.jar into the 'libs' folder
  3. Right click the blah_blah.jar, Then select 'Add as Library..'. This will automatically add and entry in build.gradle as compile files('libs/blah_blah.jar') and sync the gradle. And you are done

Please Note : If you are using 3rd party libraries then it is better to use dependencies where Gradle script automatically downloads the JAR and the dependency JAR when gradle script run.

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

Read more about Gradle Dependency Mangement

1 comments
Saurabh Bhandari 05/11/2017
this is best approach to add jar files as library

sansa 07/24/2015.
  1. Download Library file from website
  2. Copy from windows explore
  3. Paste to lib folder from Project Explorer
  4. Ctrl+Alt+Shift+S open Project Structure
  5. Select Dependencies Tab, add the file by using +
  6. Tool bar Sync project with gradle file by using button

That solved my problem. Try, if anyone want more details let me know.


Fergara 09/11/2015.

I made it work by just adding one line to build.gradle:

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

Do not forget to click "Sync now" in the top right corner.

I´m using Android Studio 1.0.1.

1 comments
Thufir 07/08/2017
would you elaborate on what the fileTree line does?

Sandeep 10/29/2015.

1. Put the jar (in my case, gson-2.2.4.jar) into the libs folder.

2. Ensure that compile files (libs/gson-2.2.4.jar) is in your build.gradle file.

3. Now Click on the "Sync Project with Gradle files"(Left to AVD manager Button on the topbar).

After I did the above three, it started working fine.


A.B. 07/23/2016.

I found Dependency Manager of Android Studio quite handy and powerful for managing 3rd party dependencies (like gson mentioned here). Providing step by step guide which worked for me (NOTE: These steps are tested for Android Studio 1.6 and onward versions on Windows platform).

Step-1:Goto "Build > Edit Libraries and Dependencies..." it would open up the dialog "Project Structure"

enter image description here

Step-2:Select "app" and then select "Dependencies" tab. Then select "Add > 1 Library dependency"

enter image description here

Step-3:"Choose Library Dependency" dialog would be shown, specify "gson" in search and press the "search button"

enter image description here

Step-4:The desired dependency would be shown in search list, select com.google.code.gson:gson:2.7 (this is the latest version at the time when I wrote the answer), press OK

enter image description here

Press OK on "Project Structure" dialog. Gradle would update your build scripts accordingly.

enter image description here

Hope this would help :)

2 comments
A.B. 08/23/2016
I have found some issue with this approach, have been working on app which uses commons-io-2.5. When uploaded the app to Google Developer Console, it shows 0 devices supported for the signed apk. After exhaustive investigation, I figured out that I have to place the jar file under app/libs/commons-io-2.5.jar and update dependencies in gralde like this 'compile files('libs/commons-io-2.5.jar')', not sure what I have been doing wrong here and why documentation doesn't cover this.
imsrgadich 08/10/2017
This is the way it works. All other answers didn't work. Android Studio 2.3.3

NarenderNishad 03/23/2015.

Download & Copy Your .jar file in libs folder then adding these line to build.gradle:

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

Do not forget to click "Sync now"

Android Studio 1.1.0


Pankaj kumar 06/23/2015.

Unlike Eclipse we don't need to download jar and put it in /libs folder. Gradle handles these things we only need to add Gradle dependencies, Gradle downloads it and puts in gradle cache.

We need to add dependencies as:

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

thats it However we can also download jar & add that as library but the best practice is to add Gradle dependencies.

1 comments
1 chathura 08/26/2015
how to know the dependency line to add? where can I found them?

huseyin 01/20/2015.

You can do this with two options.

first simple way.

Copy the .jar file to clipboard then add it to libs folder. To see libs folder in the project, choose the project from combobox above the folders.

then right click on the .jar file and click add as a library then choose a module then ok. You can see the .jar file in build.gradle file within dependencies 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'
    }

Second way is that: We can add a .jar file to a module by importing this .jar file as a .jar module then add this module to any module we want.

import module ---> choose your .jar file --> than import as a .jar --enter image description here

Then CTRL+ALT+SHIFT+S --> project sturure -->choose the module you want ato add a jar -->Dependencendies --> Module Dependency. build.gradle of the module will updated automatically. enter image description here

1 comments
Aviv Ben Shabat 01/26/2015
Nice. one edit - It's "New module" now (Android Studio 1.0.1). "Import module" sends you to a different wizard..

Elshan 07/14/2016.

Ive done above 3 steps and its work charm for me.

(I am using Android Studio 2.1.2)

enter image description here

Step 1

  • Add your jar package name (as an example compile 'com.squareup.okhttp3:okhttp:3.3.1') into gradle build script under build.gradle(Module:app).

enter image description here

Step 2:Right click on app folder -> New -> Module

enter image description here

Step 3: Click Import JAR/.AAR Package Then browse your package. as an example: OkHttp.jar

enter image description here


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

Aby Mathew 07/23/2015.

Just put the .jar files in libs folder of the Android project.

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

this line of code in the apps graddle file will do the rest.

Happy Coding :)


Create a folder libs. Add your .jar file. Right click on it and you will find add jar as dependency. Click on it. Its all you need to do. You can find the dependencies added to your build.gradle file.


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

1) create an 'your_libs' folder inside the Project/app/src folder.

2) Copy your jar file into this 'your_libs' folder

3) In Android Studio, go to File -> Project Structure -> Dependencies -> Add -> File Dependency and navigate to your jar file, which should be under 'src/your_libs'

3) Select your jar file and click 'Ok'

and then you can see on your build.gradle like this : compile files('src/your_libs/your.jar')


mbo 07/13/2015.

In android Studio 1.1.0 . I solved this question by following steps:

1: Put jar file into libs directory. (in Finder)

2: Open module settings , go to Dependencies ,at left-bottom corner there is a plus button. Click plus button then choose "File Dependency" .Here you can see you jar file. Select it and it's resolved.


IntelliJ Amiya 12/02/2015.

Step 1 : Now under your app folder you should see libs, if you don't see it, then create it .

Step 2 : Drag & Drop the .jar file here, you may be get a prompt "This file does not belong to the project", just click OK Button .

Step 3 : Now you should see the jar file under libs folder, right click on the jar file and select "Add as library", Click OK for prompt "Create Library"

Step 4 : Now this jar has been added.

enter image description here


user2573236 07/11/2013.

On Mac OS X:

  1. Add jar as library (drag jar to libs, right click add as lib)

  2. Add compile statement to build.grade

  3. Install gradle v1.6 (use homebrew)

    • brew install gradle
    • gradle -v
    • if not v1.6, upgrade homebrew
  4. gradle clean (rebuild android did not work)

This sorted me out.


Christina 12/27/2014.

Like many before pointed out you shall add

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

to your build.gradle file.

However I have a project in Android Studio that was migrated from Eclipse and in this case the "libs" folder is named "lib" so for me removing the "s" solved the problem.


Binod 07/08/2014.

compile fileTree(dir: 'libs', include: '*.jar') works fine but not compile files(...) have tested with Studio Beta 0.8.1


iberodev 09/25/2014.

My answer is basically gathering some of the right but incomplete answers provided above.

  1. Open build.gradle
  2. Add the following:

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

    This will allow support for two different ways of adding dependencies. The compile fileTree(dir: 'libs', include: ['*.jar']) (as @Binod mentioned) tells the compiler to look under the folder libs for ANY jar. It is a good practice to create such a folder 'libs' which will contain the jar packages that our application needs to use.

But this will also allow support for Maven dependency. The compile 'com.google.code.gson:gson:2.3' (as mentioned by @saneryee) it is another recommended way to add dependencies that are in a central remote repository and not in our /libs "local repository". It is basically telling gradle to look for that version of that package and it's telling the compiler to consider it when compiling the project (having it in the classpath)

PS: I use both


user2779311 02/01/2015.

For newer Android 1.0.2 the following is already there in your build.gradle file

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

Add the library jar to your libs folder -> right click the library -> click add as a library -> it asks you for the project to add it for -> select your project-> click ok The following line is automatically added to build.gradle

compile files('libs/android-query.jar')

That did it for me. nothing more was required. i have shown this for android aquery another third party library for android.


parasrish 06/08/2015.
  1. Added the "libs" folder at the level of "app".
  2. Added all the "jars" in this project.
  3. Next, selected all the jars, in the "libs" folder,
  4. right click on the selected items, and say "add library"
  5. then you will find the jars expansion option, within the project explorer itself.

I observed "CTRL+ALT+SHIFT+S --> project structure --> app-module -->Dependencies" already had an entry as "(dir: 'libs', include: '*.jar')" under "compile-option", initially. And after adding the jar's as per the steps stated above, the "build.gradle" got the entries for the new added jar's, itself.


Ranjith Kumar 05/11/2016.

In Android Studio 2.1 I follow the this way,

Goto app -> src-> main -> assets folder (If not available create it) -> put your JAR files

enter image description here

In your build.gradle add dependency like this,

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')

Sync now. Now your JAR files ready to use.

2 comments
Deni Erdyneev 05/12/2016
Why you not use libs directory?
Ranjith Kumar 05/12/2016
@ErdeniErdyneev I give another approach for storing jar files. why I am not use assets? any issues in my approach? I am ready to correct mistakes if I am wrong

user3686646 05/29/2014.

DO this :

Create libs folder under the application folder. Add .jar files to libs folder. Then add .jar files to app's build.gradle dependency. Finally Sync project with Gradle files.


HighResolutionMusic.com - Download Hi-Res Songs

1 (G)I-DLE

POP/STARS flac

(G)I-DLE. 2018. Writer: Riot Music Team;Harloe.
2 The Chainsmokers

Beach House flac

The Chainsmokers. 2018. Writer: Andrew Taggart.
3 Ariana Grande

​Thank U, Next flac

Ariana Grande. 2018. Writer: Crazy Mike;Scootie;Victoria Monét;Tayla Parx;TBHits;Ariana Grande.
4 Nicki Minaj

No Candle No Light flac

Nicki Minaj. 2018. Writer: Denisia “Blu June” Andrews;Kathryn Ostenberg;Brittany "Chi" Coney;Brian Lee;TJ Routon;Tushar Apte;ZAYN;Nicki Minaj.
5 Clean Bandit

Baby flac

Clean Bandit. 2018. Writer: Jack Patterson;Kamille;Jason Evigan;Matthew Knott;Marina;Luis Fonsi.
6 Imagine Dragons

Bad Liar flac

Imagine Dragons. 2018. Writer: Jorgen Odegard;Daniel Platzman;Ben McKee;Wayne Sermon;Aja Volkman;Dan Reynolds.
7 Halsey

Without Me flac

Halsey. 2018. Writer: Halsey;Delacey;Louis Bell;Amy Allen;Justin Timberlake;Timbaland;Scott Storch.
8 BTS

Waste It On Me flac

BTS. 2018. Writer: Steve Aoki;Jeff Halavacs;Ryan Ogren;Michael Gazzo;Nate Cyphert;Sean Foreman;RM.
9 BlackPink

Kiss And Make Up flac

BlackPink. 2018. Writer: Soke;Kny Factory;Billboard;Chelcee Grimes;Teddy Park;Marc Vincent;Dua Lipa.
10 Fitz And The Tantrums

HandClap flac

Fitz And The Tantrums. 2017. Writer: Fitz And The Tantrums;Eric Frederic;Sam Hollander.
11 Backstreet Boys

Chances flac

Backstreet Boys. 2018.
12 Kelly Clarkson

Never Enough flac

Kelly Clarkson. 2018. Writer: Benj Pasek;Justin Paul.
13 Diplo

Close To Me flac

Diplo. 2018. Writer: Ellie Goulding;Savan Kotecha;Peter Svensson;Ilya;Swae Lee;Diplo.
14 Anne-Marie

Rewrite The Stars flac

Anne-Marie. 2018. Writer: Benj Pasek;Justin Paul.
15 Little Mix

Woman Like Me flac

Little Mix. 2018. Writer: Nicki Minaj;Steve Mac;Ed Sheeran;Jess Glynne.
16 Imagine Dragons

Machine flac

Imagine Dragons. 2018. Writer: Wayne Sermon;Daniel Platzman;Dan Reynolds;Ben McKee;Alex Da Kid.
17 Little Mix

The Cure flac

Little Mix. 2018.
18 Bradley Cooper

Always Remember Us This Way flac

Bradley Cooper. 2018. Writer: Lady Gaga;Dave Cobb.
19 Rita Ora

Velvet Rope flac

Rita Ora. 2018.
20 Lady Gaga

I'll Never Love Again flac

Lady Gaga. 2018. Writer: Benjamin Rice;Lady Gaga.

Related questions

Hot questions

Language

Popular Tags