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 に答える