2016-06-24 27 views
1

私は2つの製品フレーバーを使用しています。グレーコードはINSTALL_FAILED_CONFLICTING_PROVIDERエラーを取得する

productFlavors { 
    app1 { 
     applicationId "com.xxx.app1" 
    } 
    app2 { 
     applicationId "com.xxx.yyy.app2" 
     versionCode 2 
     versionName "1.0.1" 
    } 
} 

です。INSTALL_FAILED_CONFLICTING_PROVIDERエラーが発生しています。

それは前に働いていた、と私はどのように私はそれを解決することができ

をGoogle Playにアプリを提出するだろうか?

更新:デバイスからapp1を削除すると、app2をインストールできました。

答えて

2

アンドロイドdocumentationからの引用:

アンドロイド:当局

コンテンツプロバイダによって提供されるデータを識別する1つ以上のURI機関のリスト。複数の権限は、名前をセミコロンで区切ってリストされます。競合を避けるために、権限名はJavaスタイルの命名規則(com.example.provider.cartoonproviderなど)を使用する必要があります。通常はプロバイダを実装するContentProviderサブクラスの名前です

android:authoritiesにリストされている権限は一意である必要があります。アプリの両方のフレーバーで同じ値のandroid:authoritiesが使用されている可能性があります。これが原因でこの問題が発生している可能性があります。 android:authorities(Javaスタイルの命名規則を使用して)異なる値を使用するようにフレーバのマニフェストを変更すると、おそらくこのエラーが修正されます。

+2

Gradleを使用して(手動またはAndroid Studio経由で)ビルドする場合は、アンドロイド:authority = "$ {applicationId} .provider"などのマニフェストプレースホルダを使用してください。 – CommonsWare