Reputation: 11673
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 had created a new project with just a MainActivity. Copied gson-2.2.3.jar in the /libs folder and added it as a library dependancy(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?
Upvotes: 1079
Views: 795197
Reputation: 11
for .aar files
dependencies {
implementation(
fileTree("libs") {
include("*.aar")
}
)
...
}
or
for .jar files
dependencies {
implementation(
fileTree("libs") {
include("*.jar")
}
)
...
}
Upvotes: 0
Reputation: 24692
Here are various ways to do this in Kotlin DSL (build.gradle.kts).
We assume that the library files are in project/app/libs/ directory.
Method 1
implementation(
files(
"libs/library-1.jar",
"libs/library-2.jar",
"$rootDir/foo/my-common-library.jar"
)
)
Method 2
implementation(
fileTree("libs/") {
// You can add as many include or exclude calls as you want
include("*.jar")
include("another-library.aar") // aar is similar to jar
exclude("bad-library.jar")
}
)
Method 3
implementation(
fileTree(
// Here, instead of repeating include or exclude, assign a list
"dir" to "libs/",
"include" to "*.jar",
"exclude" to listOf("bad-library-1.jar", "bad-library-2.jar")
)
)
Method 4
repositories {
flatDir {
dirs("libs/", "lib/")
}
}
dependencies {
// Could also write implementation(":jsoup:1.4.13")
implementation("org.jsoup:jsoup:1.4.13")
// NOTE: Add @aar suffix for AAR files
implementation("ir.mahozad.android:pie-chart:0.7.0@aar")
}
You can use Ant patterns in include
and exclude
calls as shown above.
See Gradle documentations for more information about this.
Thanks to this post and this post for providing helpful answers.
Upvotes: 1
Reputation: 79
In your project-name/app folder, find the libs folder. If there is no libs folder, create one. Add your .jar file. Right-click on it and you will find add .jar as a dependency. You can find the dependencies added to your build.gradle file.
Upvotes: 4
Reputation: 947
I made it work by just adding one line to build.gradle
:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
implementation '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.
Upvotes: 19
Reputation: 1427
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 {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:21.0.3'
implementation project(':okhttp-2.0.0')
implementation '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 --
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.
Upvotes: 11
Reputation: 1377
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 {implementation '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.
Upvotes: 8
Reputation: 8500
Put the .jar
files in libs
folder of the Android project.
Then add this line of code in the app's gradle file:
compile fileTree(dir: 'libs', include: ['*.jar'])
For Android gradle plugin 3.0 and later, it is better to use this instead:
implementation fileTree(dir: 'libs', include: ['*.jar'])
Upvotes: 8
Reputation: 1068
Download & Copy Your .jar
file in libs
folder then adding these line to build.gradle:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.code.gson:gson:2.3.1'
}
Do not forget to click "Sync now"
Upvotes: 11
Reputation: 1884
For newer Android 1.0.2 the following is already there in your build.gradle file
implementation 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
implementation 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.
Upvotes: 3
Reputation: 18416
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
In your build.gradle add dependency like this,
implementation files('src/main/assets/jsoup.jar')
implementation files('src/main/assets/org-apache-xmlrpc.jar')
implementation files('src/main/assets/org.apache.commons.httpclient.jar')
implementation files('src/main/assets/ws-commons-util-1.0.2.jar')
Sync now. Now your JAR files ready to use.
Upvotes: 4
Reputation: 4152
libs
folder at the level of app
. jars
in this project. libs
folder,add library
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.
Upvotes: 3
Reputation: 52484
With Android Studio 3+:
You should just be able to simply copy the jar file to the libs folder right under the app folder.
... myproject\app\libs\myfile.jar
Then select Project Files from the drop-down on the Projects window, right click on the project, select Synchronize to see the file in Project Files. It will automatically add the dependencies in the gradle file (Module:app).
dependencies {
...
implementation files('libs/myfile.jar')
Here is another solution:
Go to the Project Files view (select Project Files from the dropdown).
Select New... Directory, create a folder named libs right under app.
Open up File Explorer, copy and paste your jar file into the libs folder.
In Android Studio, right click on the jar file, and select Add as a Library... from the popup menu.
You should see the file listed in the dependencies list in the gradle file:
dependencies {
...
implementation files('libs/myfile.jar')
}
Open up your java file, and add the import statement there:
import com.xxx.xxx;
Upvotes: 8
Reputation: 17628
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:
gson-2.2.4.jar
) into the libs
folderEnsure 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)
Edit : Use implementation files('libs/gson-2.2.4.jar')
(or implementation fileTree(dir: 'libs', include: '*.jar')
) in Android Studio 3.0+
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]
Upvotes: 1560
Reputation: 40513
Easy steps to add external library in Android Studio
- If you are in Android View in project explorer, change it to Project view as below
- Right click the desired module where you would like to add the external library, then select New > Directroy and name it as 'libs'
- Now copy the blah_blah.jar into the 'libs' folder
- 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
Upvotes: 37
Reputation: 3718
I have read all the answers here and they all seem to cover old versions of Android Studio!
With a project created with Android Studio 2.2.3 I just needed to create a libs
directory under app
and place my jar there.
I did that with my file manager, no need to click or edit anything in Android Studio.
Why it works? Open Build / Edit Libraries and Dependencies and you will see:
{include=[*.jar], dir=libs}
Upvotes: 5
Reputation: 16433
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
Upvotes: 42
Reputation: 1604
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"
Step-2: Select "app" and then select "Dependencies" tab. Then select "Add > 1 Library dependency"
Step-3: "Choose Library Dependency" dialog would be shown, specify "gson" in search and press the "search button"
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
Press OK on "Project Structure" dialog. Gradle would update your build scripts accordingly.
Hope this would help :)
Upvotes: 15
Reputation: 7693
Ive done above 3 steps and its work charm for me.
(I am using Android Studio 2.1.2)
Step 1
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) into gradle build script under build.gradle(Module:app).Step 2: Right click on app folder -> New -> Module
Step 3: Click Import JAR/.AAR Package Then browse your package. as an example: OkHttp.jar
Upvotes: 8
Reputation: 10327
Here are the instructions for adding a local jar file as a library to a module:
Create a 'libs' folder in the top level of the module directory (the same directory that contains the 'src' directory)
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>')
}
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.
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
4.4. Select your local jar and add it to the project.
You may need to run the above ./gradlew
command one more time
Upvotes: 279
Reputation: 75798
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.
Upvotes: 5
Reputation: 197
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.
Upvotes: 13
Reputation: 5276
In the project right click
-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done
1:
2:
3:
You will see this:
Upvotes: 113
Reputation: 4168
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.
Upvotes: 49
Reputation: 4761
That solved my problem. Try, if anyone want more details let me know.
Upvotes: 19
Reputation: 164
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.
Upvotes: 4
Reputation: 2117
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')
Upvotes: 4
Reputation: 6859
menu File -> project struct -> module select "app" -> dependencies tab -> + button
-> File dependency -> PATH/myfile.jar
Upvotes: 6
Reputation: 163
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.
Upvotes: 3
Reputation: 3817
I don' know why but my Android Studio 0.8.14 goes crazy when I try to implement these solutions using Gradle. I admit my poor knowledge of this great build tool but what does Studio mutilate my project for? I manage to get it working this way: put android-support-v13.jar into 'libs' directory, then F4 on my project and add File dependency where I pointed android-support-v13.jar.
Upvotes: 0
Reputation: 2051
In my case the added library missed some dependencies, but unfortunately Android Studio (0.8.14) has kept this as a secret.
There was no need to manually configure anything! I just added the missing libraries and used the default dependency configuration in the app build.gradle
file, like this
dependencies {
compile 'com.google.code.gson:gson:2.+'
compile fileTree(dir: 'libs', include: ['*.jar'])
}
Upvotes: 0