Android Studio 3.0 依赖错误
Android Studio 3.0 dependency error
我正在使用现有项目试用 Android Studio 3.0 Canary 9,但在尝试同步构建文件时遇到此错误:
Error:Failed to resolve: commons-logging:commons-logging:1.1.1
我没有将 commons-logging 添加为依赖项,因此它必须被其他依赖项使用,但我不知道是什么。这是我的顶级构建文件的 buildscript
部分,我在其中对 3.0 进行了更改:
buildscript {
repositories {
jcenter {
url "http://jcenter.bintray.com/"
}
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha9'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'de.felixschulze.gradle:gradle-hockeyapp-plugin:3.5'
}
}
在 gradle-wrapper.properties
我有这个:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
我在项目构建文件中所做的唯一更改是重命名 APK 文件的方式。有人知道如何追踪这种依赖关系以及如何修复它吗?
我不知道这是否会解决问题,但它可能有助于定位问题。
使用 AS 3.0 启动一个新的空项目,在每次添加之间进行测试时,逐一添加 3 个依赖项。我怀疑其中之一不能很好地与 AS 3.0 配合使用,并且它与您的代码无关,因为您没有进行任何更改。
您可以尝试的另一件事是返回旧版本的 AS 并重新检查它是否运行。这将问题隔离到 AS 3.0 而不是您的代码或依赖项。
最后,如果没有任何效果,请使用新的包名称创建一个全新的项目,然后手动将所有内容复制粘贴到新项目中。我通常会发现很多这样做的错误。
如果您使用 Android Gradle 2.2 插件或更新版本,那么您应该从 Gradle 插件中删除 com.neenbedankt.gradle.plugins:android-apt
。
同时将依赖项中的所有 apt
更改为 annotationProcessor
你可以阅读更多here
我听从了 moonpire00 的建议,创建了一个新项目。我发现问题出在 AWS 导入上:
implementation 'com.amazonaws:aws-android-sdk-core:2.2.0'
implementation 'com.amazonaws:aws-android-sdk-ses:2.2.0'
我把它们改成了这样:
implementation 'com.amazonaws:aws-android-sdk-core:2.2.0', {
exclude module: 'commons-logging'
}
implementation 'com.amazonaws:aws-android-sdk-ses:2.2.0', {
exclude module: 'commons-logging'
}
现在 gradle 同步成功了!如果有人了解为什么 Android Studio / gradle 3.0 会出现此错误,请 post 发表评论。
正常工作
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.keshav.mraverification"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
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:26.0.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:cardview-v7:26.0.1'
compile 'com.android.support:design:26.0.1'
testCompile 'junit:junit:4.12'
}
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
我正在使用现有项目试用 Android Studio 3.0 Canary 9,但在尝试同步构建文件时遇到此错误:
Error:Failed to resolve: commons-logging:commons-logging:1.1.1
我没有将 commons-logging 添加为依赖项,因此它必须被其他依赖项使用,但我不知道是什么。这是我的顶级构建文件的 buildscript
部分,我在其中对 3.0 进行了更改:
buildscript {
repositories {
jcenter {
url "http://jcenter.bintray.com/"
}
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha9'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
classpath 'de.felixschulze.gradle:gradle-hockeyapp-plugin:3.5'
}
}
在 gradle-wrapper.properties
我有这个:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip
我在项目构建文件中所做的唯一更改是重命名 APK 文件的方式。有人知道如何追踪这种依赖关系以及如何修复它吗?
我不知道这是否会解决问题,但它可能有助于定位问题。
使用 AS 3.0 启动一个新的空项目,在每次添加之间进行测试时,逐一添加 3 个依赖项。我怀疑其中之一不能很好地与 AS 3.0 配合使用,并且它与您的代码无关,因为您没有进行任何更改。
您可以尝试的另一件事是返回旧版本的 AS 并重新检查它是否运行。这将问题隔离到 AS 3.0 而不是您的代码或依赖项。
最后,如果没有任何效果,请使用新的包名称创建一个全新的项目,然后手动将所有内容复制粘贴到新项目中。我通常会发现很多这样做的错误。
如果您使用 Android Gradle 2.2 插件或更新版本,那么您应该从 Gradle 插件中删除 com.neenbedankt.gradle.plugins:android-apt
。
同时将依赖项中的所有 apt
更改为 annotationProcessor
你可以阅读更多here
我听从了 moonpire00 的建议,创建了一个新项目。我发现问题出在 AWS 导入上:
implementation 'com.amazonaws:aws-android-sdk-core:2.2.0'
implementation 'com.amazonaws:aws-android-sdk-ses:2.2.0'
我把它们改成了这样:
implementation 'com.amazonaws:aws-android-sdk-core:2.2.0', {
exclude module: 'commons-logging'
}
implementation 'com.amazonaws:aws-android-sdk-ses:2.2.0', {
exclude module: 'commons-logging'
}
现在 gradle 同步成功了!如果有人了解为什么 Android Studio / gradle 3.0 会出现此错误,请 post 发表评论。
正常工作
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
applicationId "com.keshav.mraverification"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
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:26.0.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.android.support:cardview-v7:26.0.1'
compile 'com.android.support:design:26.0.1'
testCompile 'junit:junit:4.12'
}
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}