我正在使用Android SDK中的NotesList示例程序进行试验。我在程序中做了轻微的更改,但是当我安装我的编辑版本时,当我尝试在设备上已经安装原始notes程序时,我在控制台中一直得到消息INSTALL_FAILED_CONFLICTING_PROVIDER。我需要在提供者中更改什么以使其成为唯一的数据库?如果我卸载原来的notes程序,然后安装我编辑过的版本,它就可以正常工作。
当前回答
是啊!我和你有同样的问题。就像你说的,你用了“变异”。保持“权威”的唯一性,你可以这样写
android:authorities="${applicationId}.provider"
如果你在一个应用程序中使用了不止一个lib,原因与上面相同。
其他回答
重命名包后可能会出现相同的错误。从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>
如果您正在使用模拟器,您可以尝试以下操作。下面的方法对我很有用。 转到工具—> AVD管理器—>(选择您的模拟器)—>擦除数据。 错误消失了。
如果你有不同的风格,你想避免在权威名称上的冲突,你可以添加一个applicationIdSuffix来构建类型,并在你的清单中使用结果的applicationId,如下所示:
<...
android:authorities="${applicationId}.contentprovider"/>
遇到这个问题。
解决方法:
1 -打开AndroidManifest.xml
2 - ctrl+f查找“provider”
3 -找到提供者并更新你的根目录名。
运行项目。希望问题会得到解决!
如果你只需要使用facebook来登录你的应用程序,这里有一个提示: (此修复在cordova项目中工作) 必须完成步骤1和步骤2才能修复该问题。
1. 找到这个文件:platform/android/android.json 在该文件中: 删除此代码:
,{"xml": "<provider android:authorities=\"com.facebook.app.FacebookContentProvider<FACEBOOK_APP_ID>\" android:exported=\"true\" android:name=\"com.facebook.FacebookContentProvider\" />","count": 1
}
然后定位文件:platforms/android/app/src/main/androidManifest.xml
删除此代码:
<provider android:authorities="com.facebook.app.FacebookContentProvider<FACEBOOK_APP_ID>" android:exported="true" android:name="com.facebook.FacebookContentProvider" />
现在应用程序可以运行良好.. 如果这个答案与OP无关,我很抱歉,但它可能会帮助许多其他有这个问题的人。我在其他地方找不到确切的答案。
推荐文章
- Android Studio, logcat在应用程序关闭后清理
- 在android中从上下文获取活动
- 无法解析主机"<URL here>"没有与主机名关联的地址
- getActivity()在Fragment函数中返回null
- 按钮背景是透明的
- 在Mac OS X上哪里安装Android SDK ?
- 我如何获得图像缩放功能?
- 在Android应用程序中显示当前时间和日期
- BottomSheetDialogFragment的圆角
- 在应用程序启动时出现“无法获得BatchedBridge,请确保您的bundle被正确打包”的错误
- 我如何改变默认对话框按钮的文本颜色在安卓5
- 更改单选按钮的圆圈颜色
- 如何在android中复制一个文件?
- adb找不到我的设备/手机(MacOS X)
- 如何在新的材质主题中改变背面箭头的颜色?