当2个图书馆想要使用相同的权限时,Manifest Merger失败
我们正在尝试将我们的系统更新为最新的Android Studio/Gradle工具,并且在途中遇到了一些错误。当2个图书馆想要使用相同的权限时,Manifest Merger失败
我们有2个使用permission.C2D_MESSAGE的库,即Firebase和XtremePush。问题是,只要我们想构建我们的应用程序,Manifest Merger的构建失败,因为他无法完成合并,出现错误“找不到记录(这是合并清单中的错误)。 ”。
当我们观察到的问题,我们发现了以下定义:
火力地堡
<permission android:name="${applicationId}.permission.C2D_MESSAGE" android:protectionLevel="signature"/>
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"/>
XtremePush
<permission android:name=".permission.C2D_MESSAGE"
android:protectionLevel="signature" />
<uses-permission android:name=".permission.C2D_MESSAGE" />
由于这两个定义外部库,我们是不是可以设置合并规则或更改清单细节。而且,这两个库都是最新的,所以似乎在各自的开发者方面都没有解决方案。在我们的清单中设置权限也没有改变任何东西。
非常感谢!
回答:
我首先找出哪些库做冲突解决了这个问题。对于我来说,XtremePush的软件包名称为'ie.imobile.extremepush',Firebase的软件包名称为'com.google.firebase'。
然后我改变我的落实..
<permission android:name="${applicationId}.permission.C2D_MESSAGE"
android:protectionLevel="signature"
tools:overrideLibrary="com.google.firebase, ie.imobile.extremepush" />
<uses-permission android:name="${applicationId}.permission.C2D_MESSAGE"
tools:overrideLibrary="com.google.firebase, ie.imobile.extremepush"/>
..所以,我的表现会超越这两个体现,这是发生冲突,并导致合并问题。这是没有问题的,因为它们在功能上已经几乎完全相同了。
回答:
在您的Android清单文件中加入:
<uses-sdk tools:overrideLibrary="com.example.firebase, com.example.xtremepush"/>
以上是 当2个图书馆想要使用相同的权限时,Manifest Merger失败 的全部内容, 来源链接: utcz.com/qa/263931.html