Android Gradle插件需要了解新的manifest元素,尤其是manifest合并过程。如果插件在明显的合并中发现了它无法识别的元素,那么它有一种混淆的倾向,即抛出问题中的构建错误。
在本例中,file_pick 中引入了<queries>作为manifest元素,而旧版本的Android Gradle插件不知道该元素。
这种情况发生在清单合并中,这意味着简单地升级依赖项可能会导致此错误。例如,如果升级到的最新版本太棒了:awesome library,并且它的manifest中包含一个<queries>元素,您可能会在构建中出现上述错误而崩溃,即使您的代码没有任何其他更改。
谷歌发布了一系列Android Gradle插件的补丁版本来解决这个问题
3.3.3、 3.4.3、 3.5.4、3.6.4、4.0.1
如果您正在使用3.3.到4.0.系列中的现有插件,请从该列表升级到相关的修补程序版本(或更高版本),这样就不会再遇到该错误, 修改android/build.gradle 文件如下:
buildscript {
ext.kotlin_version ='1.4.21'
repositories {
google()
jcenter()
}
dependencies {
classpath'com.android.tools.build:gradle:4.1.0'
classpath"org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
如果您使用的是androidstudio4.1(目前处于beta测试版)或更高版本,并且有一个匹配的androidgradle插件(例如,在4.1.*系列中),那么您应该可以不做任何更改。这些插件版本已经知道<queries>。
问题修复
升级为4.1.*