我正在使用Android SDK中的NotesList示例程序进行试验。我在程序中做了轻微的更改,但是当我安装我的编辑版本时,当我尝试在设备上已经安装原始notes程序时,我在控制台中一直得到消息INSTALL_FAILED_CONFLICTING_PROVIDER。我需要在提供者中更改什么以使其成为唯一的数据库?如果我卸载原来的notes程序,然后安装我编辑过的版本,它就可以正常工作。
当前回答
解决方案1
在物理设备而不是模拟器上运行应用程序。我遇到了这个问题,我的应用程序没有定义一个内容提供者。
解决方案2
在另一个实例中,我有一个测试应用程序安装匹配相同的applicationId。
为了解决这个问题,我必须运行。/gradlew uA - uA是uninstallAll task的缩写。
你也可以使用Gradle面板,选择导航到app\install\uninstallAll任务
如果使用模拟器,则可以擦除数据
其他回答
我本以为通过拖拽图标到“卸载”来卸载应用程序就能解决问题,但事实并非如此。
下面是解决问题的方法:
进入设置 选择应用程序 找到你的应用(是的,我很惊讶仍然在这里找到它!)并按下它 在右上角,按下3个点 选择“卸载所有用户”
再试一次,现在应该可以工作了。
在android:authorities中列出的权限必须是唯一的。引用此属性的文档:
为了避免冲突,授权名称应该使用java风格的命名约定(例如com.example.provider.卡通提供者)。通常,它是实现提供者的ContentProvider子类的名称
如果您正在使用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也在其他答案中建议。
重命名包后可能会出现相同的错误。从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>
need to use android:name="androidx.core.content.contentprovider
or android:name="androidx.core.content.provider insteadof
android:name="androidx.core.content.fileprovider
<provider
android:name="androidx.core.content.FileProvider"
android:authorities="${applicationId}.contentprovider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/filepaths" />
</provider>
推荐文章
- Android Studio, logcat在应用程序关闭后清理
- 在android中从上下文获取活动
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 按钮背景是透明的
- 在Mac OS X上哪里安装Android SDK ?
- 我如何获得图像缩放功能?
- 在Android应用程序中显示当前时间和日期
- BottomSheetDialogFragment的圆角
- 在应用程序启动时出现“无法获得BatchedBridge,请确保您的bundle被正确打包”的错误
- 我如何改变默认对话框按钮的文本颜色在安卓5
- 更改单选按钮的圆圈颜色
- 如何在android中复制一个文件?
- adb找不到我的设备/手机(MacOS X)
- 如何在新的材质主题中改变背面箭头的颜色?