当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

回到顶部