#Android 添加穿山甲sdk后报错: unexpected element <queries> found in <manifest>
问题背景
最近一个老的安卓项目需要接入穿山甲广告SDK,按照文档,引入了SDK库以后,居然就报错了:
Execution failed for task ':app:processDebugResources'.
> Android resource linking failed
Output: .../android_studio/app/build/intermediates/merged_manifests/debug/processDebugManifest/merged/AndroidManifest.xml:39: error: unexpected element <queries> found in <manifest>.
根据提示,报错的位置是AndroidManifest.xml文件第39行,应该有一个无法识别的queries元素。
但是,却怎么也没有找到!
这是怎么回事呢?
解决方法
于是上google搜索。
根据stackoverflow上的说法,这个是因为引用的库的AndroidManifest.xml包含了这个无法识别的元素。
仔细看错误描述的话,确实说的是merged合并后的文件的第39行,而不是项目的原文件。
而解决方法是,升级gralde到能识别queries元素的版本,比如:
- 3.3.3
- 3.4.3
- 3.5.4
- 3.6.4
- 4.0.1
如果是4.1以上版本的话,已经能识别这个元素,不需要升级。
我看了一下,祖传项目里用的还是gradle 3.2.0
于是升级到最近的3.3.3
重新编译,成功~