I have an aar
of socialauth-android library added to my project. I've put it inside the flatDir
directory as described here and it works just fine.
Now, I'm moving some of my code into the library module named commons
, to reuse it in the another project. socialauth-android
will be used entirely by library module, so I've moved it inside the project/commons/libs/
an rewritten my build.gradle
files. From now on I can't build my project, because the following error arises:
Error:A problem occurred configuring project ':ScrollApplication'.
> Could not resolve all dependencies for configuration ':ScrollApplication:_developmentDebugCompile'.
> Could not find :socialauth-android:.
Searched in the following locations:
http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.pom
http://dl.bintray.com/populov/maven//socialauth-android//socialauth-android-.aar
https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.pom
https://oss.sonatype.org/content/repositories/snapshots//socialauth-android//socialauth-android-.aar
https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.pom
https://repo1.maven.org/maven2//socialauth-android//socialauth-android-3.2.aar
file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android-3.2.aar
file:/home/artem/Workspace/scrollandroid/libraries/socialauth-android.aar
Required by:
scrollandroid:ScrollApplication:unspecified > scrollandroid:commons:unspecified
The error says that dependency resolver tries to find socialauth-android.aar
inside the project/libraries
folder which is the folder for all common libraries shared between modules of my project. But I've written in my project/commons/build.gradle
file that the flatDir
for the commons
module is project/commons/libs
! Moreover, all jar
libraries contained inside the project/commons/libs/
are found during the build w/o any issues.
What can be the source of this issue?
Following are my build.gradle files (some of its code, like dependencies declarations, is dropped for brevity):
project/settings.gradle:
include ':ScrollApplication', ':commons'
project/build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc1'
}
}
project/commons/build.gradle:
apply plugin: 'com.android.library'
repositories {
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
mavenCentral()
flatDir {
dirs "libs"
}
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile(name:'socialauth-android', ext:'aar')
}
project/app/build.gradle:
apply plugin: 'com.android.application'
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
mavenCentral()
flatDir {
dirs "../libraries"
}
}
configurations {
apt
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
lintOptions {
abortOnError false
}
}
dependencies {
compile project(':commons')
compile fileTree(dir: '../libraries', include: ['*.jar'])
}
Upd: project structure added
├── build.gradle
├── commons
│ ├── build.gradle
│ ├── libs
│ ├── proguard-rules.pro
│ └── src
│ ├── androidTest
│ │ └── java
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── java
│ └── res
├── gradle
│ └── wrapper
├── libraries
│ ├── aws-android-sdk-1.7.1.1-core.jar
│ ├── aws-android-sdk-1.7.1.1-s3.jar
│ ├── libGoogleAnalyticsServices.jar
│ └── supertooltips-3.0.1.aar
├── scrollandroid-hg.iml
├── ScrollApplication
│ ├── build.gradle
│ ├── proguard.cfg
│ ├── ScrollApplication.iml
│ └── src
│ └── main
│ ├── AndroidManifest.xml
│ ├── assets
│ ├── java
│ └── res
├── settings.gradle
└── stacktrace.txt
Add your AAR or JAR as a dependencyNavigate to File > Project Structure > Dependencies. In the Declared Dependencies tab, click and select Jar Dependency in the dropdown. In the Add Jar/Aar Dependency dialog, first enter the path to your . aar or .
It appears that the commons
library is being built correctly (can you compile it separately to verify?) but the application is not. Gradle has some special rules for handling transitive dependencies (dependences nested in other dependencies) which exists since commons
depends on socialauth-android
.
Try adding an extra directory to the "flatDir" attribute in "project/app/build.gradle"
flatDir {
dirs "../libraries", "../commons/libs"
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With