android - 当我将该库集成到两个应用程序中时,我创建了一个外部库,第二个应用程序未安装

标签 android

当我在安装第二个应用程序时将该库集成到两个应用程序中时,我创建了一个外部库我得到了混淆应用程序的“包与同名的现有包冲突”问题。

当集成的应用程序处于调试状态时,这两个应用程序将安装在同一台设备上。

虽然集成的应用程序已发布,但两个应用程序都没有安装在同一台设备上,出现“包与同名的现有包冲突”之类的问题。

最佳答案

如果您在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/

相关文章:

android - 如何知道 Android 是连接到 WiFi 还是以太网?

android - 获取一个 Cluster 下的所有项目

android - RecycleView 仅显示第一项

android @Suppress 错误 vs @TargetApi

java - 使用 Stage 和 Actor 的 libGDX 在桌面和 Android 手机上产生不同的相机角度

android - 在不征求用户许可的情况下开启 Android LE 扫描

android - Android 版 Google map 上的标记未对齐

java - 如何在 TextInputLayout 中设置 OnClickListener

android.support.design.widget.TextInputLayout 给出 InflateException

android - 即使在 Release模式下构建,DEBUG 始终为真