Android中的java安装\u失败\u冲突\u提供程序
我正在使用谷歌的开源软件MyTracks
我在手机上安装原始应用程序时遇到此错误
INSTALL_FAILED_CONFLICTING_PROVIDER
我知道这是因为清单中的安卓:authorities
以下是清单的一部分:
<provider
安卓:name="com.google.安卓.apps.mytracks.content.MyTracksProvider"
安卓:authorities="com.google.安卓.maps.mytracks"
安卓:exported="true"
安卓:readPermission="com.google.安卓.apps.mytracks.READ_TRACK_DATA"
安卓:writePermission="com.google.安卓.apps.mytracks.WRITE_TRACK_DATA" />
<!-- Search suggestion provider -->
<provider
安卓:name="com.google.安卓.apps.mytracks.content.SearchEngineProvider"
安卓:authorities="com.google.安卓.maps.mytracks.search"
安卓:exported="false" />
因此,我的问题是:我想知道这种方法是否可以解决问题,因为我害怕更改所有包的名称,然后导致整个应用程序崩溃
安卓 :authorities
值是包名。安卓:name
是该提供程序的类的名称。 我说得对吗李>
如果我将包名更改为与com不同的另一个包名。谷歌etx,并重命名该软件包的所有引用/导入,问题是否应该消失
# 1 楼答案
如果您在库项目中使用Google Maps+Google Play服务,则当您尝试运行使用库的应用程序时,可能会遇到此错误,而您的设备上已经安装了使用相同库的其他应用程序
修复: 确保defaultConfig。applicationId在
build.gradle
文件的android部分中为使用库的每个项目定义我建议使用特定应用程序的软件包名称。使用此修复程序,提供商名称将不再冲突,您的应用程序将按预期运行
症状
1.)从Play Store安装应用程序时,用户会看到可怕的“-505”安装错误
(二)当您尝试通过Android Studio安装使用库的第二个应用程序时,您将看到此错误消息:
在控制台中,您将看到如下消息:
修复方法是确保defaultConfig。applicationId在
build.gradle
文件的android部分中为使用库的每个项目定义更多阅读请参见原始错误报告:Issue 784: Multiple apps using same authority provider name
# 2 楼答案
如果您使用ex facebook sdk 然后,对于每个应用程序,您需要在清单中显示唯一的这一行
XXXXXXXXX-对于每个应用程序都应该是唯一的,对于facebook sdk,它是您的facebook\u id号
# 3 楼答案
gradle还需要包含这一点
我把它完全漏掉了
# 4 楼答案
我在更改应用程序清单中的程序包名称时遇到了相同的错误。当您再次尝试安装应用程序(使用新的软件包名称)时,会产生冲突。解决方案是删除应用程序的旧版本(使用旧软件包名称),然后您就可以安装新版本
# 5 楼答案
在本例中,它正好是包名。它必须是独一无二的
对
包名与此无关。不过,你可能也需要改变这一点,以便你的应用程序能够与常规、未修改的应用程序一起安装
您需要为
android:authorities
指定一个唯一的值,并且应用程序中使用该ContentProvider
的代码需要使用适当的Uri
(content://whatever.you.change.the.authority.to/...
)# 6 楼答案
只需从您的设备上卸载helloFacebooksample应用程序