Android Studio: Add jar as library?

2018-12-31 00:51发布

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?

30条回答
琉璃瓶的回忆
2楼-- · 2018-12-31 01:30

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

查看更多
浅入江南
3楼-- · 2018-12-31 01:31

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

查看更多
不流泪的眼
4楼-- · 2018-12-31 01:33

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)

    Edit : Use implementation files('libs/gson-2.2.4.jar') (or implementation fileTree(dir: 'libs', include: '*.jar')) in Android Studio 3.0+

  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楼-- · 2018-12-31 01:33

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

查看更多
何处买醉
6楼-- · 2018-12-31 01:33

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

查看更多
春风洒进眼中
7楼-- · 2018-12-31 01:33

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

查看更多
登录 后发表回答