在某天打开Android Studio突然发现,前一天能正常运行的项目无法运行了,报这个错误
报错“Execution failed for task ‘:app:processDebugResources’.”,显示“AAPT: error: unexpected element < queries > found in < manifest >”,想着应该是由于Studio更新,或者是gradle版本的问题,于是看了下Studio的版本,是4.1.3,又看了下项目的gradle的版本,是
classpath 'com.android.tools.build:gradle:3.4.2'
通过查询错误应该是gradle的版本过低,将项目gradle版本升级为
classpath 'com.android.tools.build:gradle:4.1.3'
编译后显示
Minimum supported Gradle version is 6.5. Current version is 6.1.1.
Please fix the project's Gradle settings.
于是再修改gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip
再编译后提示
A problem occurred configuring project ':app'.
> groovy.lang.MissingPropertyException: Could not get unknown property 'manifestOutputDirectory' for task ':app:processDebugManifest' of type com.android.build.gradle.tasks.ProcessMultiApkApplicationManifest.
然后查询到应该是应用集成了华为的推送,而华为推送的的版本过低,不能匹配gradle的版本,将集成版本从
classpath 'com.huawei.agconnect:agcp:1.2.1.301'
更新到
classpath 'com.huawei.agconnect:agcp:1.4.1.300'
重新编译,发现问题依然没有解决,于是通过不断搜索查询,可能是buttnerknife的版本也不匹配,将buttnerknife的版本修改为
implementation 'com.jakewharton:butterknife:9.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:9.0.0'
发现项目除了华为推送,还依赖百度统计,而百度统计可能也存在和华为推送同样的问题,查看百度统计的版本,是
classpath 'com.baidu.mobstat:mtj-circle-plugin:latest.integration'
这样看插件应该是最新的版本,那是不是插件本身没有解决这个gradle的问题呢,这就太深层了,查看了一下代码,去掉依赖没有影响,那就去掉吧,查询了百度统计的gradle集成文档:集成文档
将代码里的StatService屏蔽,编译通过,运行成功
特此记录