5

デバイスのフォント (Samsung Galaxy Tab3) を変更しようとしたとき、アプリケーションに問題があり、アプリケーションがクラッシュしました。この場合、フォントを変更するとアプリケーションがバックグラウンドで実行されます。

手順:

  • アプリを起動
  • ステータスバーを使用してデバイス設定を開く
  • デバイスのフォント スタイルを変更する
  • 最近のアプリを使用してアプリに戻る
  • クラッシュ

このシナリオを他のデバイスでテストしようとしましたが、再現できません。私のアプリは、Samsung デバイスでのみ、システムのフォント スタイルが変更された場合にのみクラッシュしました。

ログクラッシュを添付:

07-22 12:26:09.359: E/AndroidRuntime(8110): FATAL EXCEPTION: main
07-22 12:26:09.359: E/AndroidRuntime(8110): java.lang.NullPointerException
07-22 12:26:09.359: E/AndroidRuntime(8110):     at com.acs.nomad.app.widget.h.a(Unknown Source)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at com.acs.nomad.app.b.ap.m(Unknown Source)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at com.acs.nomad.app.d.v.onPause(Unknown Source)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:890)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.FragmentManagerImpl.removeFragment(FragmentManager.java:1129)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.BackStackRecord.popFromBackStack(BackStackRecord.java:662)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.FragmentManagerImpl.popBackStackState(FragmentManager.java:1450)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.FragmentManagerImpl$2.run(FragmentManager.java:444)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1401)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.FragmentManagerImpl$1.run(FragmentManager.java:426)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.os.Handler.handleCallback(Handler.java:615)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.os.Handler.dispatchMessage(Handler.java:92)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.os.Looper.loop(Looper.java:137)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at android.app.ActivityThread.main(ActivityThread.java:4949)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at java.lang.reflect.Method.invokeNative(Native Method)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at java.lang.reflect.Method.invoke(Method.java:511)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1043)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:810)
07-22 12:26:09.359: E/AndroidRuntime(8110):     at dalvik.system.NativeStart.main(Native Method)
4

1 に答える 1

1

ストック Android にはchange device's font style

それは、Samsung TouchWiz のものに違いありません。おそらく、Samsung 固有の SDK を確認する必要があります。

しかし、もし私があなたなら、Broadcast Receiver を通じてフォント スタイルの変更を聞くでしょう。Google Play のブロードキャスト モニター アプリを使用して、どのブロードキャストを聞くかを調べます。

そして、nullpointer 例外を飲み込み、それが発生するたびにアクティビティを再起動します。これが思い切ったアクションであることは理解していますが、フォント スタイルがどのように nullpointer 例外を引き起こしているかを突き止めるまでは、おそらくそれが唯一の回避策です。

于 2015-07-31T06:07:31.557 に答える