- 在执行"cordova build android"时报错,但是之前build过程没有报过错:
FAILURE: Build failed with an exception.
* What went wrong:
Error:Execution failed for task ':processArmv7DebugResources'.
> com.android.ide.common.process.ProcessException: Failed to execute aapt
Error:In <declare-styleable> FontFamilyFont, unable to find attribute android:fontVariationSettings
- 报错原因:
谷歌发布了com.android.support:support-v4的新版本28.0.0-alpha1,并添加2个新属性(android:fontVariationSettings和android:ttcIndex)。插件使用最新的android支持库,这会导致V4包与compileSdkVersion配置不一致报错。 - 解决方法:
方法一:安装 cordova-android-support-gradle-release 插件
插件的文档说明中提到“This Cordova/Phonegap plugin for Android aligns various of the Android Support libraries specified by other plugins to a specific version.”;即:这个插件可以将其他插件指定的android支持库的各种版本与特定的版本对齐。
cordova plugin add cordova-android-support-gradle-release --fetch
`
方法二:在android平台下的build.gradle中添加代码段
/**
IMPORTANT - Manually added
Problem: 8 March 2018 - Google released version support-v4:28.0.0-alpha1
which breaks the project with following error: unable to find attribute
android:fontVariationSettings and android:ttcIndex
Effect: Force a specific version of the library
*/
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:27.1.0' //兼容包的版本要跟compileSdkVersion配置相同
}
}
警告:如果你进行remove/add android平台后在build.gradle中添加的代码将被覆盖。如果你不想因为某些原因而使用方法一的插件,或者这种方式对你不起作用,那么你可以每次创建一个钩子并覆盖文件。
如果问题还是存在,你可以试试:
cordova platform rm android
cordova platform add android
另外:
`
确保你的手机上没有安装之前版本的APP,因为当你试图降低现有版本时,将收到一个模糊的错误:"INSTALL_FAILED_VERSION_DOWNGRADE" 和"UnhandledPromiseRejectionWarning: Unhandled promise rejection"