我继承了一个代码库,需要与以前的版本保持公平同步,以便在通过git推送更改时尽可能无痛地更新到新版本。我所做的更改与重新设计样式和添加新功能有关。内容提供程序权威
在最新的版本中,我试图同时安装应用程序旁边这个定制版的原始版本,并得到这个错误:
Failure [INSTALL_FAILED_CONFLICTING_PROVIDER]
我通过我的源代码控制看了一下,发现在以前的版本我使用相同的authorities
和name
作为父应用程序,但我不记得有这个问题,但也许我从来没有测试两个应用程序同时安装的情况?
在清单的原始版本,这是provider元素:
<provider
android:name="com.foo.mobile.android.provider.Provider"
android:authorities="com.foo.android.mobile.contentprovider"
android:exported="false" />
我试图改变权力这一点:
<provider
android:name="com.foo.mobile.android.provider.Provider"
android:authorities="com.bar.android.mobile.contentprovider"
android:exported="false" />
但现在的应用程序崩溃与SecurityException
推出后不久, :
java.lang.SecurityException: Permission Denial: opening provider com.foo.mobile.android.provider.Provider from ProcessRecord{42cbc998 2462:com.bar/u0a191} (pid=2462, uid=10191) that is not exported from uid 10189
我看过,所以看到一个couple的questions关于这个话题,也看了the documentation,这一切都说我需要这个authorities
是不同的,但我怎么能保持这个不同,同时保持与基本代码的协同作用?
这工作。我发现在另外一个地方提到了这一点。一旦我改变了它,它就起作用了。谢谢! –