Android - 共享首选项在某些设备上崩溃。

时间:2012-05-08 01:22:26

标签: android sharedpreferences

我有这个例外,我从Android获取崩溃报告:

java.lang.NoSuchMethodError: android.content.SharedPreferences$Editor.apply
at com.problemio.ProblemioActivity.first_time_check(ProblemioActivity.java:231)
at com.problemio.ProblemioActivity.onCreate(ProblemioActivity.java:47)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4668)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:878)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:636)
at dalvik.system.NativeStart.main(Native Method)

我对Android中的崩溃报告系统很陌生。为什么会发生这种崩溃?我无法在我的设备或模拟器上重现它。

崩溃报告需要哪些其他信息来确定原因以及如何解决此问题?

谢谢!

2 个答案:

答案 0 :(得分:5)

API级别9中引入了

apply(),运行您的应用的某些设备可能使用较低版本。考虑将此调用更改为commit。正如文档中所述:

  

预计不会有SharedPreferences.Editor接口   直接实施。但是,如果您之前已经实现了它并且   现在得到关于缺少apply()的错误,你可以简单地调用   apply()中的commit()。

答案 1 :(得分:1)