升级Gradle到3.4之后,编译报错Android resource linking failed
xxx\app\build\intermediates\merged_manifests\debug\AndroidManifest.xml:249: error: unexpected element <uses-permission> found in <manifest><application>.这个错是manifest文件合并失败(主module,三方库依赖等他们的manifest合并)。我这里的错误是由于我引用的一个三方库,这个三方库将
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>写在了<application>节点下面了,即位置写错了。
话不多说,直接上解决方法:
解决方法1:添加tools:node属性添加合并规则,比如tools:node="remove",replease等等,具体可以参考https://developer.android.com/studio/build/manifest-merge?hl=zh-cn
2:如果方法1还不能解决,那就找到是引入哪个三方库造成的。方法为:在路径:项目目录\app\build\outputs\logs\manifest-merger-debug-report文件中搜索报错的权限,即可定位到是哪个三方库引来的错误