How to Use a Library Project in Android Studio

How to use a library project in android studio

I'm not sure if it's already possible to add a library project via the IDE (-> without any problems).
I do this by configuring the gradle files of my project like this:

  • create a folder in your root project directory named libs
  • copy the folder datetimepicker-library to libs
  • add this library in your settings.gradle with the following command:

    include ':libs:datetimepicker-library'
  • go to your build.gradle file of your AppProject and add the following line to your dependencies:

    implementation project(':libs:datetimepicker-library')
  • at least you have to sync your gradle files: Tools -> Android -> Sync Project with Gradle Files

Please try this. If you get errors please post the log file.

Adding external library in Android studio

Try this:

File > Project Structure > Dependencies Tab > Add module dependency (scope = compile)

Where the module dependency is the project library Android folder.

How do I add a library project to Android Studio?

Update for Android Studio 1.0

Since Android Studio 1.0 was released (and a lot of versions between v1.0 and one of the firsts from the time of my previous answer) some things has changed.

My description is focused on adding external library project by hand via Gradle files (for better understanding the process). If you want to add a library via Android Studio creator just check the answer below with visual guide (there are some differences between Android Studio 1.0 and those from screenshots, but the process is very similar).

Before you start adding a library to your project by hand, consider adding the external dependency. It won’t mess in your project structure. Almost every well-known Android library is available in a Maven repository and its installation takes only one line of code in the app/build.gradle file:

dependencies {
implementation 'com.jakewharton:butterknife:6.0.0'
}

Adding the library

Here is the full process of adding external Android library to our project:

  1. Create a new project via Android Studio creator. I named it HelloWorld.
  2. Here is the original project structure created by Android Studio:
HelloWorld/
app/
- build.gradle // local Gradle configuration (for app only)
...
- build.gradle // Global Gradle configuration (for whole project)
- settings.gradle
- gradle.properties
...

  1. In the root directory (HelloWorld/), create new folder: /libs in which we’ll place our external libraries (this step is not required - only for keeping a cleaner project structure).
  2. Paste your library in the newly created /libs folder. In this example I used PagerSlidingTabStrip library (just download ZIP from GitHub, rename library directory to „PagerSlidingTabStrip" and copy it). Here is the new structure of our project:
HelloWorld/
app/
- build.gradle // Local Gradle configuration (for app only)
...
libs/
PagerSlidingTabStrip/
- build.gradle // Local Gradle configuration (for library only)
- build.gradle // Global Gradle configuration (for whole project)
- settings.gradle
- gradle.properties
...

  1. Edit settings.gradle by adding your library to include. If you use a custom path like I did, you have also to define the project directory for our library. A whole settings.gradle should look like below:

     include ':app', ':PagerSlidingTabStrip'
    project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')

5.1 If you face "Default Configuration" error, then try this instead of step 5,

    include ':app'
include ':libs:PagerSlidingTabStrip'

  1. In app/build.gradle add our library project as an dependency:

     dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:21.0.3'
    implementation project(":PagerSlidingTabStrip")
    }

6.1. If you followed step 5.1, then follow this instead of 6,

    dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:21.0.3'

implementation project(":libs:PagerSlidingTabStrip")
}

  1. If your library project doesn’t have build.gradle file you have to create it manually. Here is example of that file:

         apply plugin: 'com.android.library'

    dependencies {
    implementation 'com.android.support:support-v4:21.0.3'
    }

    android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"

    defaultConfig {
    minSdkVersion 14
    targetSdkVersion 21
    }

    sourceSets {
    main {
    manifest.srcFile 'AndroidManifest.xml'
    java.srcDirs = ['src']
    res.srcDirs = ['res']
    }
    }
    }
  2. Additionally you can create a global configuration for your project which will contain SDK versions and build tools version for every module to keep consistency. Just edit gradle.properties file and add lines:

     ANDROID_BUILD_MIN_SDK_VERSION=14
    ANDROID_BUILD_TARGET_SDK_VERSION=21
    ANDROID_BUILD_TOOLS_VERSION=21.1.3
    ANDROID_BUILD_SDK_VERSION=21

    Now you can use it in your build.gradle files (in app and libraries modules) like below:

     //...
    android {
    compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
    buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION

    defaultConfig {
    minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
    targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
    }
    }
    //...
  3. That’s all. Just click‚ synchronise the project with the Gradle’ icon synchronise with Gradle. Your library should be available in your project.

Google I/O 2013 - The New Android SDK Build System is a great presentation about building Android apps with Gradle Build System: As Xavier Ducrohet said:

Android Studio is all about editing, and debugging and profiling.
It's not about building any more.

At the beginning it may be little bit confusing (especially for those, who works with Eclipse and have never seen the ant - like me ;) ), but at the end Gradle gives us some great opportunities and it worth to learn this build system.

Android Library Project using Android Studio

Simplest way to do this :

  1. Right click on your opened project in Android Studio and select New > Module

  2. In the left Pane choose Android Library and click on next.

  3. Enter all details, untick Create Activity, Theme and all if not required.

  4. Choose API level same as your project and Next, Next, Next .

Now you will see an another directory inside your project, build.gradle for library will be automatically configured for you.

If your module/library name is "mylibrary",

include ':mylibrary' 

will be automatically added in settings.gradle file inside root directory of your project.

Now open your main module and insert this line in dependency block :

compile project(':mylibrary')

If you want to use same library in other projects, you have to copy the library module to that particular project using File Explore and have to configure settings.gradle and main module's build.gradle manually.

How to import a library project in Android Studio, without making a copy?

The real answer to keep your library project only in one place is in this post :

Android Studio 0.8.1 Creating Modules without copying files?

How to add external library project to android studio 1.2.2? with solution

You just need to create a module and add the external library project to this module. Then add module dependency in project structure. That's all. Android Studio will automatically add everything to Gradle file. You don't need to do these manually.

How to create a library project in Android Studio and an application project that uses the library project

To create a library:

File > New Module

select Android Library

Lib

To use the library add it as a dependancy:

File > Project Structure > Modules > Dependencies

dep

Then add the module (android library) as a module dependency.

add module

Run your project. It will work.

How to add a project as a library in Android Studio?

I would suggest to import your library manually rather than using "Import Module" since it 1) will change directory layout for the library; 2) you can catch bugs (as I did) because Android Studio is still in beta.

To accomplish this:

1) Copy your library folder under /libraries

2) Create build.gradle file inside library folder you've just copied, with similar content:

buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
}
}
apply plugin: 'android-library'

android {
compileSdkVersion 19
buildToolsVersion "19.1.0"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}

sourceSets {
main {
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']

manifest.srcFile 'AndroidManifest.xml'
}
}
}

3) Add include ':libraries:RootTools' to your settings.gradle

4) Add dependency to the build.gradle under the app module:

dependencies {
compile project(':libraries:RootTools')
...
}

5) Run ./gradlew assembleDebug to assemble your project, including the library.

Create STANDALONE Android Studio (1.5) library project

This may not feel comfortable for a person from other platform/IDE/world, but this is The Way. Personally i'm getting annoyed with Xcode every time i use it in the exact same way you're annoyed with AndroidStudio now. But lets get down to business:

  1. Create an empty project and select "Create no activity".
    Sample Image
  2. When everything is set, go to "File\New\New Module" and select "Android Library"
    Sample Image
  3. Give a name for created library and click "Finish".
  4. (Optional) go to "Run\Edit Configurations" and set everything like below:
    Sample Image

  5. Now open the librarie's 'build.gradle' file. Make sure to open the file from exact same folder which is named with your library name, because there are a couple of 'build.gradle' files all over the place. Remove support-library entry from the file:
    Sample Image

  6. Write some code and when you're ready to deploy the library set everything like this:
    Sample Image

Go to "Build" menu at the top and select "Build APK".

And about unit tests:
Sample Image

**Edit 1: **

If you really want to remove the 'app' folder, than follow instructions on a picture below:
Sample Image



Related Topics



Leave a reply



Submit