0

任何人都可以告诉我如何在一台设备上安装不同版本的不同版本,而不会在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的,所以我也尝试添加一个存根ContentProvider类的项目,并宣布机器人:当局=“$ {} providerAuthority”的

<provider/> 

标签包括的名字里面存根内容提供者 - >没有成功。 我会很高兴的一些其他的想法或更正。

UPDATE:

错误消息试图在我的设备上安装应用程序时,我从Android Studio中获得。

this is the error message I get from Android Studio

+0

“我不使用的ContentProvider” - 那么具体是什么给你这个例外? “并在我的AndroidManifest中添加了” - 如果您不使用“ContentProvider”,那么您在哪里添加了此属性?您可能会考虑发布安装例外的整个堆栈跟踪,这应该显示在LogCat中。 – CommonsWare

+0

android:应该将权限添加到您的提供者标记中,请清除您的问题并发布您的manifest.xm的相关部分 – cyroxis

回答

0

我找到了解决办法:

当我说我没有一个供应商我撒谎了。我只是不再使用它。因此,我的问题的解决方案是在这里(或者干脆删除未使用的提供者):https://stackoverflow.com/a/24850080/3734116

我终于意识到它通过查看我在生成/我所有的口味。在那里我看到一个提供者总是拥有相同的权限。

另一个问题可能也受到了(但并不适用于我)

相关问题