0

我在 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 中的崩溃报告系统非常陌生。为什么会发生这种崩溃?我无法在我的设备或模拟器上重现它。

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

谢谢!

4

2 回答 2

5

apply()在 API 级别 9 中引入,并且运行您的应用程序的某些设备可能具有较低版本。考虑将此调用更改为commit. 如文档中所述:

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

于 2012-05-08T01:26:06.187 回答
1

阅读文档:

http://developer.android.com/reference/android/content/SharedPreferences.Editor.html#apply ()

查看它开始使用的 api 版本。

于 2012-05-08T01:26:07.003 回答