Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

The best way to integrate third party library in Android studio

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

like image 808
Bagusflyer Avatar asked Sep 01 '13 04:09

Bagusflyer


People also ask

How do I add a library project to Android Studio?

Navigate to File > Project Structure > Dependencies. In the Declared Dependencies tab, click and select Library Dependency in the dropdown. In the Add Library Dependency dialog, use the search box to find the library to add.

What is third party integration in Android?

In a nutshell, by using third party API, you can add new features to your app, get access to other services data or mobile device features, without spending a fortune on developing those features from scratch.


2 Answers

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
like image 144
Eugen Martynov Avatar answered Sep 28 '22 04:09

Eugen Martynov


  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.

like image 41
An SO User Avatar answered Sep 28 '22 03:09

An SO User