Gradle依赖更新后Cordova Android构建失败求助
这个问题我之前帮朋友排查过,核心原因就是Android Support库版本和你的TargetSDKVersion不兼容。你指定的TargetSDK是25,但Gradle自动拉了27.0.0的Support库——而android:font、android:fontStyle、android:fontWeight这些属性是API 26(Android 8.0)才新增的,27.0.0的Support库依赖了这些高版本特性,自然会和TargetSDK25冲突,导致aapt编译失败。
给你几个具体的解决思路,按顺序尝试:
强制锁定Support库版本与TargetSDK匹配
打开项目根目录下的platforms/android/build.gradle文件,在文件末尾添加以下Gradle配置,强制所有Support库使用与TargetSDK25兼容的25.4.0版本:configurations.all { resolutionStrategy { force 'com.android.support:support-v4:25.4.0' force 'com.android.support:appcompat-v7:25.4.0' // 如果项目用到了其他Support库(比如design、recyclerview等),也需要在这里强制指定25.4.0版本 } }这段配置会覆盖Gradle自动选择的高版本依赖,确保所有Support库版本和TargetSDK保持一致。
排查插件的依赖冲突
有些Cordova插件会在自身的plugin.xml里硬编码高版本的Support库依赖,导致Gradle冲突。你可以先执行cordova plugin list查看已安装的插件,然后进入plugins/[插件名称]/目录,打开plugin.xml检查是否有类似<framework src="com.android.support:appcompat-v7:27.0.0" />的配置。如果有,把版本号改成25.4.0,或者更换该插件的兼容版本,甚至移除非必需的冲突插件。调整Gradle版本适配旧SDK
你的JDK8配置是没问题的,但高版本Gradle(比如5.x及以上)对旧版Android SDK的支持可能有问题。可以打开platforms/android/gradle/wrapper/gradle-wrapper.properties,把distributionUrl修改为兼容的Gradle 4.x版本:distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-all.zip清理缓存后重新构建
最后执行清理命令清除旧的构建缓存和文件,再重新构建:cordova clean android cordova build android
如果之后你打算升级TargetSDK到27或更高版本,这些android:font相关属性就可以正常使用了,但当前为了适配TargetSDK25,必须保证Support库版本与TargetSDK严格匹配。
内容的提问来源于stack exchange,提问作者Mikul

