java.lang.SecurityException:不再支持MODE_WORLD_READABLE [英] java.lang.SecurityException: MODE_WORLD_READABLE no longer supported

查看:448
本文介绍了java.lang.SecurityException:不再支持MODE_WORLD_READABLE的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

该异常仅发生在Android 7.0 Nougat(仿真器)设备中.

The exception only occurs in Android 7.0 Nougat (emulator) devices.

java.lang.SecurityException:不再支持MODE_WORLD_READABLE

java.lang.SecurityException: MODE_WORLD_READABLE no longer supported

我的代码:

public void SessionMaintainence(Context context) {
    this.context = context;
    preferences = context.getSharedPreferences(PREF_NAME, Context.MODE_WORLD_READABLE);
    editor = preferences.edit();
    editor.commit();
}

LogCat:

> E/AndroidRuntime: FATAL EXCEPTION: main
>                                                  Process: burpp.av.feedback, PID: 2796
>                                                  java.lang.RuntimeException: Unable to create application
> burpp.av.feedback.FeedbackApplication: java.lang.SecurityException:
> MODE_WORLD_READABLE no longer supported
>                                                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5364)
>                                                      at android.app.ActivityThread.-wrap2(ActivityThread.java)
>                                                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)
>                                                      at android.os.Handler.dispatchMessage(Handler.java:102)
>                                                      at android.os.Looper.loop(Looper.java:154)
>                                                      at android.app.ActivityThread.main(ActivityThread.java:6077)
>                                                      at java.lang.reflect.Method.invoke(Native Method)
>                                                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
>                                                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
>                                                   Caused by: java.lang.SecurityException: MODE_WORLD_READABLE no longer supported
>                                                      at android.app.ContextImpl.checkMode(ContextImpl.java:2162)
>                                                      at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:363)
>                                                      at android.app.ContextImpl.getSharedPreferences(ContextImpl.java:358)
>                                                      at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:164)
>                                                      at burpp.av.feedback.support.SessionMaintainence.<init>(SessionMaintainence.java:63)
>                                                      at burpp.av.feedback.FeedbackApplication.onCreate(FeedbackApplication.java:43)
>                                                      at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1024)

推荐答案

世界可读的文件可能是安全漏洞.因此,android首先弃用了它,然后将其完全删除.在Android M之前的版本中不推荐使用MODE_WORLD_READABLE.但是Android N中不再支持它,并抛出SecurityException.因此,请尝试其他模式.我使用了Context.MODE_PRIVATE并且有效.

World-readable files can be a security flaw. So android first deprecated it and then completely removed it. MODE_WORLD_READABLE was deprecated in versions till Android M. But in Android N it is no longer supported and throws SecurityException. So try a different mode. I used Context.MODE_PRIVATE and it worked.

这篇关于java.lang.SecurityException:不再支持MODE_WORLD_READABLE的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆