3

Google Play Vitals は、同様の構造を持つ Android 8.0 および 8.1 を実行している Android デバイスで発生したクラッシュを報告しています。

java.lang.RuntimeException: 
  at android.app.ActivityThread.handleBindApplication (ActivityThread.java:5743)
  at android.app.ActivityThread.-wrap1 (Unknown Source)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1656)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6494)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)
Caused by: java.lang.IllegalStateException: 
  at android.app.ContextImpl.getSharedPreferences (ContextImpl.java:387)
  at android.app.ContextImpl.getSharedPreferences (ContextImpl.java:372)
  at android.content.ContextWrapper.getSharedPreferences (ContextWrapper.java:167)
  at foo.bar.core.data.UserPreferences.<init> (UserPreferences.java:11)
  at foo.bar.android.core.di.AppModule.a (AppModule.java:7)
  at foo.bar.android.core.di.AppModule_ProvideUserPreferencesFactory.a (AppModule_ProvideUserPreferencesFactory.java:10)
  at foo.bar.android.core.di.AppModule_ProvideUserPreferencesFactory.get (AppModule_ProvideUserPreferencesFactory.java)
  at dagger.internal.DoubleCheck.get (DoubleCheck.java:15)
  at foo.bar.android.core.di.DaggerAppComponent.n (DaggerAppComponent.java:2)
  at foo.bar.android.Application.d (FooApplication.java:9)

奇妙なことに、私が を作成する方法SharedPreferencesは非常に単純です。

private val userPreferences: SharedPreferences = context.getSharedPreferences(USER_PREFS_FILE_NAME, Context.MODE_PRIVATE)

もう 1 つの奇妙な点は、私が Android 8.1 を使用していて、クラッシュに気付かなかったことです。一方、Play Vitals では、私が常に使用しているデバイスとまったく同じデバイスでクラッシュが発生していると報告されています。Pixel 2 XL、Android 8.1 (他にもあるその問題のあるデバイスも同様です)。

Android 8.0 で導入された に明らかな変更がありませんかSharedPreferences(クラッシュは 8.0 と 8.1 の両方で発生していますが、クラッシュの約 96% は 8.1 で発生しています)。

4

0 に答える 0