Android M getSharedPreferences在发布版本中崩溃

时间:2015-10-28 09:56:40

标签: android sharedpreferences android-6.0-marshmallow

我在Android M(Nexus 5 / Clean install)下使用 getPreferences / getSharedPreferences 功能时出现问题

当打开调试(调试和发布版本)时,没有问题,但是当我使用调试关闭进行发布版本时,则应用程序正在加载并且只会显示白屏并且Logcat正在显示:

  

W / System:ClassLoader引用了未知路径:/ data / app / com。。* - 1 / lib / arm

以下代码行给出了问题:

 SharedPreferences login = getApplicationContext().getSharedPreferences("AUTOLOGIN", Context.MODE_MULTI_PROCESS);

我也试过这一行(同样的问题):

 SharedPreferences login2 = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

在我的Manifest文件中,我试图关闭自动备份,但结果是一样的。 在运行较低Android版本的其他设备上没有问题

有没有让我的应用在Android M下工作,还是我必须跳过共享偏好?

2 个答案:

答案 0 :(得分:0)

这是一个时间问题,调试减慢了一切

答案 1 :(得分:0)

我在发布版本中初始化SharedPreferences时遇到了类似的问题(proguard已激活,可调试为false)。我的错误日志是(在Crashlytics中看到,而不是在logcat中):

Fatal Exception: java.lang.ExceptionInInitializerError
...
Caused by java.lang.RuntimeException: Missing type parameter.
...

我修复了它在proguard-rules.pro文件中添加此代码:

-keepattributes Signature #

也许是同样的错误。