210

Android SDK の NotesList サンプル プログラムを試しています。プログラムにわずかな変更を加えましたが、編集したバージョンをインストールすると、元のメモ プログラムが既にデバイスにあるときにインストールしようとすると、コンソールに INSTALL_FAILED_CONFLICTING_PROVIDER というメッセージが表示され続けます。プロバイダーを一意のデータベースにするには、プロバイダーで何を変更する必要がありますか? 元のメモ プログラムをアンインストールしてから、編集したバージョンをインストールすると、問題なく動作します。

4

29 に答える 29

248

に記載されている機関はandroid:authorities一意である必要があります。この属性のドキュメントを引用する:

競合を避けるために、機関名は Java スタイルの命名規則 (com.example.provider.cartoonprovider など) を使用する必要があります。通常、プロバイダーを実装する ContentProvider サブクラスの名前です。

于 2013-04-28T21:17:11.237 に答える
36

これは、古いバージョンのアプリがインストールされていて、(サポート) ライブラリまたはマニフェスト ファイルに変更を加えた場合にも発生する可能性があります。デバイスから古いアプリケーションを削除すると ( Settings --> Application --> <your application> --> Uninstall)、問題が解決します。

于 2014-09-16T19:04:03.103 に答える
7

基本的に、アプリのパッケージ名を変更しようとしたときに、これが発生しました。

そのため、エミュレーターでは、同じアプリが以前にインストールされていました。パッケージ名を変更した後にアプリをインストールしようとすると、デバイス内の古いアプリケーションによって権限が既に使用されていると表示されました。

アプリケーションをアンインストールしただけで、問題は解決しました。

また、機関名は常に : your.package.name.UNIQUENAME;にする必要があります。

例 :

  <provider
        android:name="com.aviary.android.feather.cds.AviaryCdsProvider"
        android:authorities="your.package.name.AviaryCdsProvider"
       />
于 2016-06-10T21:13:22.900 に答える
7

おそらくマニフェストで宣言した機関 + プロバイダー名

于 2013-04-28T21:00:31.827 に答える
5

明らかなことを述べますが、applicationIdin への参照を黙って台無しにしないようにしてくださいandroid:authorities

私の場合、私はタイプミスをして、いまいましいドル記号を省略しました:

android:authorities="{applicationId}.myprovider"

それ以外の :

android:authorities="${applicationId}.myprovider"

これにより、すぐにエラーが発生することはありませんでした (有効な機関名であるため)。しかし、数日後、アプリケーションのさまざまなバリエーションをインストールしようとしたとき、何が問題なのかを理解するのに本当に苦労しました。エラー メッセージには、コンテンツ プロバイダーの問題点に関する情報があまり含まれていないからです。

これをトラブルシューティングする別の方法は、マージされたマニフェストを比較して、同一の権限を探すことです。

于 2021-01-28T15:22:18.280 に答える
2

私はこの問題を抱えていました:

Installation did not succeed.
The application could not be installed: INSTALL_FAILED_CONFLICTING_PROVIDER

しかし、それはマニフェストのプロバイダーからのものではありませんでした。私のアプリの以下のライブラリは他のアプリと競合しており、他のアプリはインストールできません:

implementation 'com.iceteck.silicompressorr:silicompressor:2.2.1'
于 2020-09-23T05:08:17.313 に答える
-2

<providerタグの下のandroid:authorities属性を確認してください


パッケージ名が正しいかどうかを確認してください

于 2020-12-10T12:32:52.787 に答える