提问者:小点点

如何修复“在<manifest>中发现意外元素<queries>”?


突然间,我在我的Android项目中遇到了这个构建错误:

unexpected element <queries> found in <manifest>

我该怎么修?


共1个答案

匿名用户

Android Gradle插件需要了解新的清单元素,特别是清单合并过程。 如果插件在清单合并中看到它无法识别的元素,它就有一种混淆的倾向,抛出像问题中那样的构建错误。

在本例中,Android 11引入了作为清单元素,而Android Gradle插件的旧版本不知道该元素。

这种情况发生在清单合并中,这意味着仅仅升级一个依赖项就可能导致这种错误。 例如,如果您升级到com.awesom:awesom-library的最新版本,并且它的清单中包含一个元素,那么即使在代码中没有任何其他更改,您也可能在构建中出现上述错误。

谷歌发布了一系列Android Gradle插件的补丁版本来解决这个问题:

  • 3.3.3
  • 3.4.3
  • 3.5.4
  • 3.6.4
  • 4.0.1

如果您正在使用3.3.*4.0.*系列中的现有插件,请从该列表中升级到相关的补丁版本(或更高版本),您将不会再遇到该错误(例如,classpath'com.android.tools.build:gradle:4.0.1')。

如果您使用的是Android Studio4.1(目前是beta版)或更高版本,以及与之匹配的Android Gradle插件(例如4.1.*系列),您应该不会做任何更改。 这些插件版本已经知道

请看这篇Android开发者博客文章了解更多信息。