我在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下工作,还是我必须跳过共享偏好?
答案 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 #
也许是同样的错误。