如何在Apache Cordova中设置cordovaConfig变量并修改Gradle相关配置?
解决Cordova中Android Gradle Plugin和Gradle版本配置问题
一、查看cordovaConfig变量的实际取值
- 直接查看Cordova Android平台配置文件:在项目的
platforms/android/cordova/lib/config.js或platforms/android/cordova/version.js中,能找到AGP_VERSION和GRADLE_VERSION的默认定义值。 - 对应Cordova Android版本的默认值:比如Cordova Android 12.x版本默认使用AGP 7.4.2 + Gradle 7.6;11.x版本默认是AGP 7.0.4 + Gradle 7.1.1,可根据当前Cordova Android版本直接对应。
二、修改版本值的正确方式(避免被Cordova覆盖)
直接修改生成的build.gradle会被Cordova构建脚本覆盖,推荐用以下可靠方式:
方法1:通过项目根目录的config.xml配置(优先选择)
在config.xml中添加偏好设置,Cordova构建时会自动注入到build.gradle:
<!-- 指定Android Gradle Plugin版本 --> <preference name="AndroidGradlePluginVersion" value="7.4.2" /> <!-- 指定Gradle版本 --> <preference name="GradleVersion" value="7.6" />
添加后执行以下命令重新构建平台,确保配置生效:
cordova platform remove android cordova platform add android # 或者执行清理构建 cordova build android --clean
方法2:修改Cordova平台模板文件(不推荐,需重复操作)
若需临时修改(更新平台后会被覆盖),可编辑platforms/android/cordova/lib/builders/GradleBuilder.js,找到设置版本的代码段,将变量替换为固定值:
- 把
${cordovaConfig.AGP_VERSION}替换为"7.4.2" - 把
cordovaConfig.GRADLE_VERSION替换为"7.6"
三、Android Studio修改无效的原因
你在Android Studio的File->Project Structure->Project中修改的是已生成的build.gradle文件,而Cordova每次执行构建或同步操作时,都会根据自身配置重新生成该文件,导致修改被覆盖,因此必须通过Cordova官方配置入口(如config.xml)修改。
四、解决AGP版本无效的错误
遇到java.lang.IllegalArgumentException: cordovaConfig.AGP_VERSION is not a valid AGP version string错误时:
- 检查
config.xml中是否正确配置了AndroidGradlePluginVersion偏好,确保版本格式正确(比如7.4.2而非带符号的格式)。 - 执行
cordova platform remove android && cordova platform add android重新生成平台文件,修复可能的配置损坏问题。
内容的提问来源于stack exchange,提问作者h0lgi
相关产品推荐
相关产品推荐

