Android Gradle升级至7.0.0后maven-gradle-plugin不可用如何解决
错误说明
该错误发生在升级Android Gradle Plugin(AGP)至7.0.0版本后,应用com.github.dcendents.android-maven插件时,完整报错信息如下:
An exception occurred applying plugin request [id: 'com.github.dcendents.android-maven'] > Failed to apply plugin 'com.github.dcendents.android-maven'. > Could not create plugin of type 'AndroidMavenPlugin'. > Could not generate a decorated class for type AndroidMavenPlugin. > org/gradle/api/publication/maven/internal/MavenPomMetaInfoProvider
问题根因
com.github.dcendents.android-maven是社区第三方维护的Maven上传插件,官方已经停止迭代维护,最新的发行版最高仅支持AGP 4.2.x + Gradle 6.x版本组合- AGP 7.0.0对应要求Gradle版本最低为7.0,该版本Gradle移除了内部API
org.gradle.api.publication.maven.internal.MavenPomMetaInfoProvider,旧版本插件依赖该API运行,因此启动时直接抛出类不存在异常
解决方案
优先推荐使用谷歌官方维护的maven-publish插件替代旧插件,适配所有AGP 7.x及更高版本,配置示例如下:
- 首先在模块级build.gradle文件中引入官方插件:
plugins { id 'com.android.library' // 引入官方maven发布插件 id 'maven-publish' }
- 同文件下添加发布配置,可根据实际需求调整参数:
afterEvaluate { publishing { publications { release(MavenPublication) { // 上传aar产物 from components.release // 填写group、artifactId、版本号信息,和旧插件配置逻辑一致 groupId = 'com.example.demo' artifactId = 'mylibrary' version = '1.0.0' } } repositories { maven { // 填写私有Maven仓库地址,本地仓库可直接写本地路径 url = uri("${rootProject.buildDir}/maven-repo") // 私有仓库需要配置账号密码的话可添加对应credentials配置 } } } }
- 同步Gradle后,执行对应模块的
publish任务即可完成产物上传,和旧插件的使用流程一致。
如果暂时无法迁移配置,必须使用com.github.dcendents.android-maven插件,只能回退AGP版本至4.2.x及以下,配套使用Gradle 6.7.1~6.9版本即可正常运行。
内容的提问来源于stack exchange,提问作者Huanghao
相关产品推荐
相关产品推荐

