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


当前回答

解决方案1

在物理设备而不是模拟器上运行应用程序。我遇到了这个问题,我的应用程序没有定义一个内容提供者。

解决方案2

在另一个实例中,我有一个测试应用程序安装匹配相同的applicationId。

为了解决这个问题,我必须运行。/gradlew uA - uA是uninstallAll task的缩写。

你也可以使用Gradle面板,选择导航到app\install\uninstallAll任务

如果使用模拟器,则可以擦除数据

其他回答

就像@Jose L Ugia所说的那样,让当局做出改变。

(您可以在清单中找到提供者(合并清单))

大多数情况下,它会连接到你实现的SDK,所以删除SDK实现行并同步Gradle,然后再次添加实现行并同步Gradle。

实施路线: 实现文件(<您的SDK>)

提供者代码:(你必须在merge-manifest中向下滚动才能找到它)

解决方案1

在物理设备而不是模拟器上运行应用程序。我遇到了这个问题,我的应用程序没有定义一个内容提供者。

解决方案2

在另一个实例中,我有一个测试应用程序安装匹配相同的applicationId。

为了解决这个问题,我必须运行。/gradlew uA - uA是uninstallAll task的缩写。

你也可以使用Gradle面板,选择导航到app\install\uninstallAll任务

如果使用模拟器,则可以擦除数据

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

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

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

下面是解决问题的方法:

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

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

遇到这个问题。

解决方法:

1 -打开AndroidManifest.xml

2 - ctrl+f查找“provider”

3 -找到提供者并更新你的根目录名。

运行项目。希望问题会得到解决!