我繼承了一個代碼庫,需要與以前的版本保持公平同步,以便在通過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
是不同的,但我怎麼能保持這個不同,同時保持與基本代碼的協同作用?
這工作。我發現在另外一個地方提到了這一點。一旦我改變了它,它就起作用了。謝謝! –