“error: unexpected element <queries> found in <manifest>“问题解决记录

在某天打开Android Studio突然发现,前一天能正常运行的项目无法运行了,报这个错误
“error: unexpected element <queries> found in <manifest>“问题解决记录_第1张图片
报错“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屏蔽,编译通过,运行成功

特此记录

你可能感兴趣的:(Android,gradle,android)