ContentProvier使用时: Permission Denial:that is not exported from uid XXX解决办法
2016-06-16 15:00
477 查看
错误Log:
06-16 02:55:12.577: E/AndroidRuntime(26914): FATAL EXCEPTION: main 06-16 02:55:12.577: E/AndroidRuntime(26914): Process: com.example.contentresolverdemo, PID: 26914 06-16 02:55:12.577: E/AndroidRuntime(26914): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.contentresolverdemo/com.example.contentresolverdemo.MainActivity}: java.lang.SecurityException: Permission Denial: opening provider com.example.datasaveloaddemo.MyDataProvider from ProcessRecord{b32aee28 26914:com.example.contentresolverdemo/u0a56} (pid=26914, uid=10056) that is not exported from uid 10054 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.access$800(ActivityThread.java:135) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.os.Handler.dispatchMessage(Handler.java:102) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.os.Looper.loop(Looper.java:136) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.main06-16 02:55:12.577: E/AndroidRuntime(26914): FATAL EXCEPTION: main 06-16 02:55:12.577: E/AndroidRuntime(26914): Process: com.example.contentresolverdemo, PID: 26914 06-16 02:55:12.577: E/AndroidRuntime(26914): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.contentresolverdemo/com.example.contentresolverdemo.MainActivity}: java.lang.SecurityException: Permission Denial: opening provider com.example.datasaveloaddemo.MyDataProvider from ProcessRecord{b32aee28 26914:com.example.contentresolverdemo/u0a56} (pid=26914, uid=10056) that is not exported from uid 10054 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.access$800(ActivityThread.java:135) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.os.Handler.dispatchMessage(Handler.java:102) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.os.Looper.loop(Looper.java:136) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.main(ActivityThread.java:5017) 06-16 02:55:12.577: E/AndroidRuntime(26914): at java.lang.reflect.Method.invokeNative(Native Method) 06-16 02:55:12.577: E/AndroidRuntime(26914): at java.lang.reflect.Method.invoke(Method.java:515) 06-16 02:55:12.577: E/AndroidRuntime(26914): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 06-16 02:55:12.577: E/AndroidRuntime(26914): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 06-16 02:55:12.577: E/AndroidRuntime(26914): at dalvik.system.NativeStart.main(Native Method) 06-16 02:55:12.577: E/AndroidRuntime(26914): Caused by: java.lang.SecurityException: Permission Denial: opening provider com.example.datasaveloaddemo.MyDataProvider from ProcessRecord{b32aee28 26914:com.example.contentresolverdemo/u0a56} (pid=26914, uid=10056) that is not exported from uid 10054 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.os.Parcel.readException(Parcel.java:1465) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.os.Parcel.readException(Parcel.java:1419) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityManagerProxy.getContentProvider(ActivityManagerNative.java:2848) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.acquireProvider(ActivityThread.java:4415) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2207) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:1425) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.content.ContentResolver.query(ContentResolver.java:445) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.content.ContentResolver.query(ContentResolver.java:404) 06-16 02:55:12.577: E/AndroidRuntime(26914): at com.example.contentresolverdemo.MainActivity.onCreate(MainActivity.java:24) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.Activity.performCreate(Activity.java:5231) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 06-16 02:55:12.577: E/AndroidRuntime(26914): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 06-16 02:55:12.577: E/AndroidRuntime(26914): ... 11 more
解决办法:
在AndroidManifest.xml里加入<provider android:exported = "true" />
修改前:AndroidManifest.xml
<provider android:name="com.example.datasaveloaddemo.MyDataProvider" android:authorities="com.etc.myprovider"> </provider>
修改后:AndroidManifest.xml
<provider android:name="com.example.datasaveloaddemo.MyDataProvider" android:authorities="com.etc.myprovider" android:exported="true" > </provider>
相关文章推荐
- UIView的maskView属性
- ios基本控件之UIAlertController
- web.xml is missing and <failOnMissingWebXml> is set to true
- RF《Quick Start Guide》操作总结
- D001-开发工具-Protel99SE-配置-常用技巧-快捷键-(ques=1)
- Arduino 和 TB6612FNG 驱动直流电机
- UISearchController:遮挡UITableView
- confluence-5.4.4安装、破解、汉化
- nib but didn't get a UITableView
- UITableView基础
- 将UIImage保存成JPG或PNG格式存储在本地
- UI Automator
- 解决UIButton 选中状态和未选中状态色差问题
- SoapUI - 全局变量的使用
- CUICatalog: Invalid asset name supplied:
- UITextField使用总结
- Android Guide
- NSTimer UUID
- UI Design
- iOS8使用UIVisualEffectView实现模糊效果