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
tolibs
add this library in your
settings.gradle
with the following command:include ':libs:datetimepicker-library'
go to your
build.gradle
file of yourAppProject
and add the following line to yourdependencies
: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:
- Create a new project via Android Studio creator. I named it HelloWorld.
- 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
...
- 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). - 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
...
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'
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")
}
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']
}
}
}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=21Now 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)
}
}
//...That’s all. Just click‚ synchronise the project with the Gradle’ icon . 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 :
Right click on your opened project in Android Studio and select
New > Module
In the left Pane choose Android Library and click on next.
Enter all details, untick Create Activity, Theme and all if not required.
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
To use the library add it as a dependancy:
File > Project Structure > Modules > Dependencies
Then add the module (android library) as a module dependency.
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:
- Create an empty project and select "Create no activity".
- When everything is set, go to "File\New\New Module" and select "Android Library"
- Give a name for created library and click "Finish".
(Optional) go to "Run\Edit Configurations" and set everything like below:
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:
- Write some code and when you're ready to deploy the library set everything like this:
Go to "Build" menu at the top and select "Build APK".
And about unit tests:
**Edit 1: **
If you really want to remove the 'app' folder, than follow instructions on a picture below:
Related Topics
Android How to Wait Until a Service Is Actually Connected
Zipalign - Command Not Found - MAC Terminal
Httpurlconnection.Openconnection Fails Second Time
How to Debug on a Real Device (Using Eclipse/Adt)
Stuck with Gradle Build Running
How to Add a View Programmatically to Relativelayout
How to Import Eclipse Library Project from Github to Android Studio Project
How to Set Ringtone with Ringtonemanager.Action_Ringtone_Picker
Android Device Monitor "Data" Folder Is Empty
Fragment Standard Transition Not Animating
Hide Tablayout on Scroll of Content Instead of Toolbar
Bitmapdrawable Deprecated Alternative
Invalid Heap Address and Fatal Signal 11
Uninstall App Silently with System Privileges