跨工程测试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了。。