突然之间,我在我的 Android 项目中遇到了这个构建错误:
unexpected element <queries> found in <manifest>
我如何解决它?
原文由 CommonsWare 发布,翻译遵循 CC BY-SA 4.0 许可协议
突然之间,我在我的 Android 项目中遇到了这个构建错误:
unexpected element <queries> found in <manifest>
我如何解决它?
原文由 CommonsWare 发布,翻译遵循 CC BY-SA 4.0 许可协议
我在 react-native-image-crop-picker
库中遇到了这个错误,我通过更新 Gradle 版本解决了这个问题,如前面的答案中所述。
它是:
classpath("com.android.tools.build:gradle:3.5.3")
更新为:
classpath("com.android.tools.build:gradle:3.5.4")
我跑了一个:
cd android && ./gradlew clean && cd .. && npx react-native run-android
然后它工作正常。
原文由 Jefferson Patricio 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答1.3k 阅读✓ 已解决
2 回答2.6k 阅读
2 回答1.7k 阅读
1 回答2.1k 阅读
1 回答1.1k 阅读
1 回答1.3k 阅读
1.3k 阅读
Android Gradle 插件需要了解新的清单元素,尤其是清单合并过程。如果插件在清单合并中看到它无法识别的元素,就会产生混淆,从而抛出问题中的构建错误。
在这种情况下,Android 11 引入了
<queries>
作为清单元素,而旧版本的 Android Gradle 插件不知道该元素。这发生在清单合并中的事实意味着简单地升级依赖项可能会导致此错误。例如,如果您升级到最新版本的
com.awesome:awesome-library
,并且它的清单中包含<queries>
元素,您可能会在构建中出现上述错误而崩溃,即使没有任何其他您的代码中的更改。谷歌发布了一系列补丁版本的 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 Studio 4.1 或更高版本,并带有匹配的 Android Gradle 插件(例如,在
4.1.*
系列中),则无需任何更改就可以了。那些插件版本已经知道<queries>
。有关更多信息,请参阅 此 Android 开发者博客文章。