Android中由于authorities导致的“应用组件的命名与已安装应用有冲突”

在Android开发中,由于ContentProvider的authorities相同,导致应用安装冲突。问题源于旧项目的jar包,其中的ContentProvider与新项目设置相同。解决方法是确保每个APP的authorities具有唯一性,避免与其他应用重复,以确保正常安装和更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题如上图所示,明明已经更改了app的applicationId,还是说冲突,有点不解,于是去了度娘查了一哈,最后找到了解决方法如下:

最后在一个群里有大佬问我是不是用到ContentProvider看一下两个apk中ContentProviderauthorities是不是没有做修改,因为是接手别人的项目而且数据库那一块就是升级而已,所以我知道在哪使用到ContentProvider但是一直没有仔细去研究,赶紧去一瞅原来是这个玩意坏了大事,哎……这时候才想起来ContentProviderauthorities就是为内容提供者指定一个唯一的标识,这样别的应用才可以唯一获取此Provider,同时App中自己的ContentProviderauthorities也不能和Android系统的authorities一致哦,之前的Android在开发中用了一个开源的jar,来实现ContentProvider和触发器来监听App中部分数据的变化,并且在代码中设置的authorities,当初我又匆匆忙忙的改完包名和部分配置文件就上线了,就因为两个APP的ContentProvider中authorities都是通样的结果Android就默认反馈应用组件的命名与已安装应用有冲突,使得同一个Android不能再安装新的apk,同时以后开发中为了避免和其他APP的authorities雷同,建议采用APP英文名+包名+类名来避免!小伙伴引以为戒啊。

引自(https://blog.csdn.net/black_bird_cn/article/details/79504487)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值