Closed tangnuo closed 4 years ago
要在xml文件里面的provider 里面配置 android:grantUriPermissions="true" ,至于为什么看下面链接 https://developer.android.google.cn/reference/android/support/v4/content/FileProvider.html 以及FileProvider源码第380行 ` public void attachInfo(@NonNull Context context, @NonNull ProviderInfo info) { super.attachInfo(context, info);
// Sanity check our security
if (info.exported) {
throw new SecurityException("Provider must not be exported");
}
if (!info.grantUriPermissions) {
throw new SecurityException("Provider must grant uri permissions");
}
mStrategy = getPathStrategy(context, info.authority);
}
`
fixed
2019-11-27 09:47:34.218 5458-5458/? E/AndroidRuntime: Uncaught error process : com.yuyh.imgsel 2019-11-27 09:47:34.221 5458-5458/? E/AndroidRuntime: FATAL EXCEPTION: main Process: com.yuyh.imgsel, PID: 5458 java.lang.RuntimeException: Unable to get provider android.support.v4.content.FileProvider: java.lang.SecurityException: Provider must grant uri permissions at android.app.ActivityThread.installProvider(ActivityThread.java:5882) at android.app.ActivityThread.installContentProviders(ActivityThread.java:5471) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5410) at android.app.ActivityThread.-wrap2(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6147) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) Caused by: java.lang.SecurityException: Provider must grant uri permissions at android.support.v4.content.FileProvider.attachInfo(FileProvider.java:388) at android.app.ActivityThread.installProvider(ActivityThread.java:5879) at android.app.ActivityThread.installContentProviders(ActivityThread.java:5471) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5410) at android.app.ActivityThread.-wrap2(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1550) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6147) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779)