当我在安装第二个应用程序时将该库集成到两个应用程序中时,我创建了一个外部库我得到了混淆应用程序的“包与同名的现有包冲突”问题。
当集成的应用程序处于调试状态时,这两个应用程序将安装在同一台设备上。
虽然集成的应用程序已发布,但两个应用程序都没有安装在同一台设备上,出现“包与同名的现有包冲突”之类的问题。
最佳答案
如果您在lib的AndroidManifest文件中使用了Provider的代码,请将其从lib中移除。将其移至 Apps 的 AndroidManifest 文件。以下内容在两个应用程序的 AndroidManifest 中应该是唯一的。
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="your unique app package name"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths_public" />
</provider>
XML 文件将在下面的应用程序资源 xml 文件夹中
<?xml version="1.0" encoding="utf-8"?>
<paths>
<external-path
name="external_files"
path="." />
<root-path
name="external_files"
path="/storage/" />
</paths>
这也是'包冲突'的原因之一
对于 AndroidManifest of Library,我们需要确保 android:name 应该以 'dot' 开头,例如。 “.sdk.network.FirebaseDataReceiver”。这同样适用于“service android:name ...”。
我在 AndroidManifest 文件中添加了“Receiver”的示例。
<receiver android:name=".sdk.network.FirebaseDataReceiver"
android:exported="false"
android:permission="com.google.android.c2dm.permission.SEND"> '
<intent-filter>
<action android:name="com.google.android.c2dm.intent.RECEIVE" />
</intent-filter>
</receiver>
关于android - 当我将该库集成到两个应用程序中时,我创建了一个外部库,第二个应用程序未安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54720267/