我正在使用Android SDK中的NotesList示例程序进行试验。我在程序中做了轻微的更改,但是当我安装我的编辑版本时,当我尝试在设备上已经安装原始notes程序时,我在控制台中一直得到消息INSTALL_FAILED_CONFLICTING_PROVIDER。我需要在提供者中更改什么以使其成为唯一的数据库?如果我卸载原来的notes程序,然后安装我编辑过的版本,它就可以正常工作。


当前回答

如果你有不同的风格,你想避免在权威名称上的冲突,你可以添加一个applicationIdSuffix来构建类型,并在你的清单中使用结果的applicationId,如下所示:

<...
 android:authorities="${applicationId}.contentprovider"/>

其他回答

重命名包后可能会出现相同的错误。从AndroidManifest.xml中检查android:权威的string.xml中的值。

<provider
        android:authorities="@string/content_authority"
        android:name=".data.Provider"
        ... />

在string.xml中,该值应该与manifest中声明的包名相同。

<string name="content_authority">com.whatever.android.sunshine.app</string>

我本以为通过拖拽图标到“卸载”来卸载应用程序就能解决问题,但事实并非如此。

下面是解决问题的方法:

进入设置 选择应用程序 找到你的应用(是的,我很惊讶仍然在这里找到它!)并按下它 在右上角,按下3个点 选择“卸载所有用户”

再试一次,现在应该可以工作了。

它帮助了我:进入AndroidManifest并粘贴或替换此代码

<provider
        android:authorities="${applicationId}.here.this.library.provider"
        android:name="androidx.core.content.FileProvider"
        android:exported="false"
        android:grantUriPermissions="true"
        tools:replace="android:authorities" >

    </provider>

我遇到了这样的问题:

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

但它不是来自舱单供应商 我的应用程序中的以下库与其他应用程序有冲突,其他应用程序无法安装:

implementation 'com.iceteck.silicompressorr:silicompressor:2.2.1'

如果您正在使用Facebook SDK,那么问题可能在于您为Facebook提供商提供的“权限”值。

取代,

<provider
        android:name="com.facebook.FacebookContentProvider"
        android:authorities="com.facebook.FacebookContentProvider"
        android:exported="true" />

与- - - >

<provider
        android:name="com.facebook.FacebookContentProvider"
        android:authorities="com.facebook.FacebookContentProvider[YOUR_APP_ID]"
        android:exported="true" />

您可能需要更改defaultConfig。ApplicationId也在其他答案中建议。