Android Studio导入Cordova项目CordovaLib模块Gradle同步报错求助
问题根因
两个报错的核心原因是你使用的Cordova-Android 9.1.0版本过旧,和当前Android Studio自带的高版本Gradle、Android Gradle Plugin(AGP)完全不兼容:
- 项目依赖的
com.github.dcendents:android-maven-gradle-plugin:2.1是早已停止维护的旧插件,Gradle 7.0及以上版本移除了它依赖的内部类MavenPomMetaInfoProvider,直接导致插件加载失败 - 插件加载失败后,CordovaLib的Gradle配置流程中断,无法读取预先定义的
cdvCompileSdkVersion变量,才会触发compileSdkVersion is not specified的次级报错
你之前尝试重装Android平台、更换Android SDK版本没有效果,是因为重装后仍然是旧版Cordova-Android,和新版Android Studio的构建环境不匹配。
可行解决方案
方案1(推荐,一劳永逸):升级Cordova-Android平台版本
Cordova-Android 10.x及以上版本已经完全移除了对过时的android-maven、bintray插件的依赖,兼容新版Android Studio,也满足Google Play最新的上架签名要求:
- 先备份
platforms/android目录下你手动修改过的自定义配置,比如Manifest权限、启动图/图标配置等 - 在项目根目录执行命令卸载旧版Android平台:
cordova platform rm android - 安装适配新版构建环境的Cordova-Android版本,建议选择11.0.0及以上版本,可兼容Android Studio Hedgehog、Iguana等近年发布的版本:
cordova platform add android@11.0.0 - 平台安装完成后,再用Android Studio打开
platforms/android目录,Gradle会自动完成同步,不会再出现上述报错,之后直接走Android Studio的标准签名打包流程即可准备上架。
方案2(临时兼容方案,适合暂时不想升级平台的场景)
如果短期不想升级Cordova-Android版本,可以手动调整配置适配旧版构建环境:
- 打开Android Studio设置,找到
Build, Execution, Deployment > Build Tools > Gradle配置页,将项目使用的Gradle版本切换到6.1.1,AGP版本固定为4.0.1,不要使用7.x及以上版本的Gradle - 打开
android/CordovaLib/build.gradle文件,将buildscript下的dependencies块替换为以下内容:dependencies { classpath 'com.android.tools.build:gradle:4.0.1' classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.5' } - 确认项目配置的
compileSdkVersion不低于33,满足Google Play当前的上架要求,如果privateHelpers.getProjectTarget()读取到的版本过低,直接将CordovaLib配置里的compileSdkVersion cdvCompileSdkVersion改为硬编码的compileSdkVersion 33 - 重新触发Gradle同步即可解决报错。
注意:该方案仅为临时兼容手段,旧版Cordova-Android默认的targetSdkVersion、权限配置、打包逻辑可能不符合Google Play最新的审核规则,后续上架有概率被驳回,优先选择升级平台的方案。
内容的提问来源于stack exchange,提问作者Francesco G.
相关产品推荐
相关产品推荐

