Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding local .aar files to my gradle build

So i have created a Android-Library and succesfully compiled it into a .aar file i called this aar file: "projectx-sdk-1.0.0.aar" now i want my new project to depend on this aar so what i have did is follow this post: http://life.nimbco.us/referencing-local-aar-files-with-android-studios-new-gradle-based-build-system/

But the post confuses me since i do not get the desired result:

The package name of the aar is : com.projectx.photosdk and the module inside is called sdk

here is my current project structure:

|-SuperAwesomeApp |--.idea |--gradle |--App |---aars |----projectx-sdk-1.0.0.aar |---build |---jars |---src |---build.gradle 

And he is my gradle build file:

apply plugin: 'android'  buildscript {     repositories {         mavenCentral()         flatDir {             dirs 'aars'         }     } }  android {     compileSdkVersion 19     buildToolsVersion "19.0.1"      defaultConfig {         minSdkVersion 11         targetSdkVersion 19         versionCode 1         versionName "1.0"     }     buildTypes {         release {             runProguard false             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'         }     } }  dependencies {     compile 'com.android.support:gridlayout-v7:19.0.1'     compile 'com.android.support:support-v4:19.0.1'     compile 'com.android.support:appcompat-v7:19.0.1'       compile 'com.projectx.photosdk:sdk:1.0.0@aar' //    compile files( 'aars/sdk-1.0.0.aar' ) // Does not work either } 

// EDIT

The errors i am getting:

Failed to refresh Gradle project 'SuperAwesomeApp'      Could not find com.projectx.photosdk:sdk:1.0.0.      Required by:      SuperAwesomeApp:App:unspecified 
like image 387
sn0ep Avatar asked Feb 19 '14 14:02

sn0ep


People also ask

How do I import a module into gradle?

In Android Studio, Right-clicking on the folder to add as library. Editing the dependencies in the build. gradle file, adding: compile fileTree(dir: 'libs', include: '*. jar')}


2 Answers

You put your flatDir block in the wrong repostories block. The repositories block inside buildscript tells Gradle where to find the Android-Gradle plugin, but not the rest of the dependencies. You need to have another top-level repositories block like this:

repositories {     mavenCentral()     flatDir {         dirs 'aars'     } } 

I tested this and it works okay on my setup.

like image 75
Scott Barta Avatar answered Sep 17 '22 22:09

Scott Barta


With recent versions of Android Studio, tested with 1.3, to use local .AAR file and not one fetched from maven/jcenter repository, just go to File > New > New module and choose Import .JAR/.AAR Package.

What you will end up with is a new module in your project that contains very simple build.gradle file that looks more or less like this:

configurations.create("default") artifacts.add("default", file('this-is-yours-package-in-aar-format.aar')) 

Of course, other projects have to reference this new module with regular compile project directive. So in a project that uses this new module which is simple a local .aar file has this in it's build.gradle

[...] dependencies {     compile fileTree(dir: 'libs', include: ['*.jar'])     testCompile 'junit:junit:4.12'     compile 'com.android.support:appcompat-v7:23.1.0'     compile 'com.android.support:design:23.1.0'     [...]      compile project(':name-of-module-created-via-new-module-option-described-above') } [...] 
like image 38
pelotasplus Avatar answered Sep 16 '22 22:09

pelotasplus