升级到AS 3.2.1后,出现此gradle同步错误:
Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :androidlib_abc.
我的应用gradle.build:
apply plugin: 'com.android.application'
allprojects {
repositories {
// The order in which you list these repositories matter.
google()
jcenter()
maven {
url "https://maven.google.com"
}
}
}
android {
compileSdkVersion 28
defaultConfig {
applicationId "de.gpx.android.rtk"
minSdkVersion 24
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
cppFlags ""
}
}
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
buildToolsVersion '28.0.3'
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
compile project(path: ':androidlib_abc')
}
我的androidlib_abc gradle.build文件:
apply plugin: 'com.android.library'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
minSdkVersion 24
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
testCompile 'junit:junit:4.12'
}
错误消息中的“打开文件”链接指向应用gradle.build文件。当我删除行
compile project(path: ':androidlib_abc')
然后我可以同步成绩项目,但是我不能编译和使用该库中的任何程序包(无法解析类等)
我希望我不做更新...(“永远不要更改正在运行的系统” -_-)
有什么办法解决吗?
更新:
我从项目中删除了模块,然后重新导入了它。然后一切正常!但是:模块目录已复制到我的项目目录中(通常是行为)。但是,我需要模块目录更高一级,与项目目录位于同一目录中。这样,我可以与不同项目共享模块,而无需重复和同步工作,从而节省了很多时间(实际上,我不能同时处理多个项目)。
我曾经使用过这个settings.gradle文件:
include ':app', ':androidlib_abc'
project(':androidlib_abc').projectDir = new File(rootProject.projectDir, '../androidlib_abc ')
在AS 3.2.1之前可以完美运行
现在,在我再次成功导入模块并将模块目录上移并再次将settings.gradle文件更改为该目录之后,我再次遇到无法解决依赖错误:'-(
UPDATE2:
使用不带参数rootProject.projectDir的另一个构造函数,可以进行gradle同步。
include ':app', ':androidlib_abc'
project(':androidlib_abc').projectDir = new File('../androidlib_abc')
该库终于在左侧列出了!
但是,出现了一个新问题。无法解析模块中定义的类/方法/字段等。尽管它们甚至位于同一目录(包)中,但它们甚至不在模块本身的类中……清理和重建无济于事。奇怪的是,构建成功了,我显然甚至可以将应用安装在我的设备上,并且可以毫无例外地运行它!!?那么这可能只是一个IDE错误吗?
UPDATE3
我删除了.gradle和.idea目录,然后重新启动了AS。现在一切都好B-)
答案 0 :(得分:1)
尝试一次构建androidlib_abc。是否可以在侧面菜单中看到此库? 可能是该特定库未正确导入