无法解析releaseAnnotationProcessorClasspath配置,生成APK报错求助
问题
此前已成功导出APK,近期未添加任何新库,再次导出时出现报错:
执行':app:javaPreCompileRelease'任务失败,无法解析':app:releaseAnnotationProcessorClasspath'配置,找不到com.android.support:support-annotations:25.3.0的support-annotations.jar,搜索路径为指定的Google Maven地址。
项目配置文件如下:
根目录build.gradle
buildscript { repositories { google() //noinspection JcenterRepositoryObsolete jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.4' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { //noinspection JcenterRepositoryObsolete jcenter() google() maven { url 'https://maven.google.com' } maven { url "https://repository.aspose.com/repo/" } maven { url 'https://jitpack.io' } maven { url "https://maven.neshan.org/artifactory/public-maven" } subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.google.android.gms' && !details.requested.name.contains('multidex') ) { details.useVersion "12.0.1" } } } } } } task clean(type: Delete) { delete rootProject.buildDir }
gradle-wrapper.properties
#Mon Jul 20 12:03:01 IRDT 2020 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.4-all.zip
解决方案
调整仓库配置:
- 将
google()仓库移至所有仓库最前面,确保依赖优先从Google官方仓库拉取; - 移除重复的
maven { url 'https://maven.google.com' }配置,google()已包含该仓库内容; - 替换已停止服务的
jcenter()为mavenCentral(),jcenter在2021年停止新包上传,旧包也逐步移除。
修改后的根build.gradle仓库部分:
buildscript { repositories { google() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:3.6.4' } } allprojects { repositories { google() mavenCentral() maven { url "https://repository.aspose.com/repo/" } maven { url 'https://jitpack.io' } maven { url "https://maven.neshan.org/artifactory/public-maven" } subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> if (details.requested.group == 'com.google.android.gms' && !details.requested.name.contains('multidex') ) { details.useVersion "12.0.1" } } } } } }- 将
强制指定support-annotations版本:
在根build.gradle的resolutionStrategy中添加Support库版本强制指定,避免依赖冲突或找不到旧版本:subprojects { project.configurations.all { resolutionStrategy.eachDependency { details -> // 原有gms版本配置 if (details.requested.group == 'com.google.android.gms' && !details.requested.name.contains('multidex') ) { details.useVersion "12.0.1" } // 添加Support库版本强制指定 if (details.requested.group == 'com.android.support') { details.useVersion "28.0.0" // Support库最高稳定版本 } } } }清理Gradle缓存并重新拉取依赖:
执行以下命令清除本地缓存,强制Gradle重新下载依赖:./gradlew clean build --refresh-dependencies
原因分析
- 旧Support库被归档/移除:Google早已停止维护Android Support库,转向AndroidX,旧版本的Support库(如25.3.0)可能已从Google Maven活跃仓库中移除,仅保留归档访问,导致常规拉取失败。
- 仓库配置问题:原配置中
jcenter()在前、google()在后,且重复配置maven.google.com,导致依赖解析优先级混乱;加上jcenter停止服务,进一步影响依赖拉取。 - 本地缓存损坏/过期:Gradle本地缓存中的依赖文件可能损坏,或者缓存的仓库索引过期,导致无法找到对应的依赖包。
内容的提问来源于stack exchange,提问作者Mohamad Hasan Salmaaniyaan
相关产品推荐
相关产品推荐

