【发布时间】:2015-01-26 03:41:54
【问题描述】:
我的项目中添加了 aar 的 socialauth-android 库。我已将它放在flatDir 目录中,如here 所述,它工作得很好。
现在,我将我的一些代码移动到名为commons 的库模块中,以便在另一个项目中重用它。 socialauth-android 将完全由库模块使用,所以我将它移到了 project/commons/libs/ 中,并重写了我的 build.gradle 文件。从现在开始我无法构建我的项目,因为出现以下错误:
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
错误表明依赖解析器试图在project/libraries 文件夹中找到socialauth-android.aar,该文件夹是我项目的模块之间共享的所有公共库的文件夹。但是我已经在我的project/commons/build.gradle 文件中写到commons 模块的flatDir 是project/commons/libs!此外,在构建过程中可以找到 project/commons/libs/ 中包含的所有 jar 库,没有任何问题。
这个问题的根源是什么?
以下是我的 build.gradle 文件(为简洁起见,删除了它的一些代码,如依赖项声明):
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'])
}
更新:添加项目结构
├── 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
【问题讨论】:
-
您能提供您的目录结构列表吗?
-
@AndroidGuy 是的,当然,就在这里。 :)
-
很抱歉继续要求更多,但您能否列出“库”目录中的所有文件(和文件夹)。
-
@AndroidGuy 添加了它。如果我需要添加其他内容 - 请告诉我。谢谢。 :)
标签: android gradle android-studio android-gradle-plugin