Permission Denial: opening provider com.android.*錯誤解決辦法

跨工程測試ContentProvider功能的時候,報瞭如下的錯誤

java.lang.SecurityException: Permission Denial: opening provider com.example.contentprovider.StudentProvider from ProcessRecord{b3064f90 1140:com.example.contentprovidertest/u0a56} (pid=1140, uid=10056) that is not exported from uid 10055
at android.os.Parcel.readException(Parcel.java:1465)
at android.os.Parcel.readException(Parcel.java:1419)
at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:2848)
at android.app.ActivityThread.acquireProvider(ActivityThread.java:4415)
at android.app.ContextImpl$ApplicationContentResolver.acquireProvider(ContextImpl.java:2192)
at android.content.ContentResolver.acquireProvider(ContentResolver.java:1378)
at android.content.ContentResolver.insert(ContentResolver.java:1184)
at com.example.contentprovidertest.Test.insert(Test.java:20)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:191)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:176)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:554)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1701)

只要在提供了ContentProvider功能的工程的AndroidManifest.xml文件的 <provider>標籤里加上 android:exported="true"就可以解決了!!!

加上之後,重新啓動下提供了ContentProvider功能的工程。就ok了。。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章