如何以编程方式阻止 "conflicting provider" 消息

How to programmatically prevent "conflicting provider" message

谁能告诉我如何在一台设备上安装不同版本的不同版本,而不会在 PlayStore 和 AndroidStudio 中收到 "duplicate provider" 错误消息?

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

我试过了:

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",
        ]
    }
    //...
}

并在我的 Android清单中添加:

android:authorities="${providerAuthority}"

给我的

<application/> 

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

我不使用 ContentProvider,所以我也尝试向项目添加 Stub ContentProvider class 并在

中声明 android:authorities="${providerAuthority}"
<provider/> 

包含 Stub ContentProvider 名称的标签 --> 失败。 对于其他一些想法或更正,我会很高兴。

更新:

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

我找到了解决方案:

我说我没有提供者是在撒谎。我只是不再使用它了。所以我的问题的解决方案就在这里(或者只是删除未使用的提供程序):

我最终通过查看我在 build/intermediates/manifests/ 中生成/合并的 AndroidManifest 意识到了这一点,在那里我可以找到适合我所有风格的清单。在那里我看到一个提供者总是拥有相同的权限。

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