43
votes

We can find some very good open source libraries for android. I want to know what is the best way to integrate them to our own projects in Android studio. Here are some basic methods:

  • Copy the source code and resource files into our own project. We need to change a lot of codes (the package name, and the name in xml,etc)
  • If jar files is provided, I just create libs folder for my project and copy the jar files inside. And add the jar file in Module setting's dependencies. But unfortunately I got a lot of error messages like "Gradle: Package com.google.gson doesn't exist".

Is there a general rule to add third party source or jar files into an existing android studio project? Thanks

4
I found one post is good for jar file integration. stackoverflow.com/questions/16608135/… But for some projects with some resources file doesn't provide a jar file.Bagusflyer
Yes, what bagusflyer said ..An SO User

4 Answers

57
votes

I prefer to use central repository for dependencies management. So for gson 2.3 dependency you should add to build.gradle file:

  • Specify that you want to use maven central repository for your dependency

    repositories {jcenter()}

  • Add compile dependency to gson 2.6.2

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

Android Studio as well as your CI server should easily build your project now. And you can continue app development.

I prefer to use central repository for dependencies management because:

  • easier scope management - some libraries are only for testing, some should be included to apk and some are part of running environment (like android.jar itself)
  • easier transitive dependencies management - it is quite hard to collect libraries dependencies and if you use "jar-with-dependencies" you could get error "class already added" during dexing
  • lighter repository and easier dependency upgrade

Examples:

  • Robolectric jar should be used for unit testing only and shouldn't be part of apk itself
  • Repository is clean from different folders with jars, checkout takes much less. No needs to download and replace old jars with new jars

I should notice:

  • Not many libraries are in maven central and you should make some effort to use them such way in your project
  • You could much easier get to "class already added" error during dexing with central repository approach
  • You can mix usage of dependencies from central repository and from lib folder, but I prefer to use only one way for simplicity
13
votes
  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
  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

This series of steps was taken from Android Studio: Add jar as library? and is not my original answer. I am posting them here, again, because your question was the third in search results on Google when looking up this same topic. Hence, copying.

All credits to the one who wrote the steps.

3
votes

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

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

Do not forget to click "Sync now"

I´m using Android Studio 1.1.0

1
votes

Download and copy your jar to libs folder then add the following to your app.gradle file and SYNC.

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

repositories{
  flatDir{
      dirs 'libs'
  }
}