如何以编程方式防止"冲突的提供商"信息

时间:2016-04-22 15:05:56

标签: android android-contentprovider android-build-flavors android-variants android-flavors

任何人都可以告诉我如何在一台设备上安装不同版本的不同版本,而无需获得重复的提供商" PlayStore和AndroidStudio中都没有错误信息?

我的应用程序中有不同国家/地区的不同口味,在安装另一个应用程序之前总是卸载该应用程序很烦人。

我试过了:

productFlavors {
    austria {
        manifestPlaceholders = [
            // prevent "duplicate provider authority" message
            providerAuthority: "com.example.app.at",
        ]
    }
    germany {
        manifestPlaceholders = [
            // prevent "duplicate provider authority" message
            providerAuthority: "com.example.app.de",
        ]
    }
    //...
}

在我的AndroidManifest中我添加了:

android:authorities="${providerAuthority}"

到我的

<application/> 

标签。 这并不能解决我的问题。

我没有使用ContentProvider,所以我也尝试将Stub ContentProvider类添加到项目中并声明android:authorities =&#34; $ {providerAuthority}&#34;在

里面
<provider/> 

标签,包括Stub ContentProvider的名称 - &gt;没有成功。 我会对其他一些想法或更正感到高兴。

更新:

我尝试在设备上安装应用时从Android Studio收到的错误消息。

this is the error message I get from Android Studio

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

当我说我没有提供者时,我撒了谎。我只是不再使用它了。所以我的问题的解决方案就在这里(或者只是删除未使用的提供者):https://stackoverflow.com/a/24850080/3734116

我终于通过在build / intermediates / manifests /中查看我生成/合并的AndroidManifest来实现它,在那里我可以找到所有风格的清单。在那里,我看到一个提供者总是拥有相同的权限。

另一个问题也可能是(但不适用于我)