365連休

にわかのandroidとかの開発メモ。

Android Studio 4.1 難読化をやめる。ProGuard使います。

App Bundleでリリースしたものの、Navigationのタイミングで即死するトラブルが発生。

 

Play Consoleのクラッシュログは以下の通り。

java.lang.RuntimeException: 
  at android.view.animation.AnimationUtils.createAnimationFromXml (AnimationUtils.java:160)
  at android.view.animation.AnimationUtils.createAnimationFromXml (AnimationUtils.java:127)
  at android.view.animation.AnimationUtils.loadAnimation (AnimationUtils.java:108)
  at androidx.fragment.app.FragmentAnim.loadAnimation (FragmentAnim.java:2)
  at androidx.fragment.app.FragmentManager.moveFragmentToExpectedState (FragmentManager.java:6)
  at androidx.fragment.app.FragmentManager.moveToState (FragmentManager.java)
  at androidx.fragment.app.FragmentManager.executeOpsTogether (FragmentManager.java:19)
  at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute (FragmentManager.java)
  at androidx.fragment.app.FragmentManager.execPendingActions (FragmentManager.java:4)
  at androidx.fragment.app.FragmentManager$4.run (FragmentManager.java)
  at android.os.Handler.handleCallback (Handler.java:751)
  at android.os.Handler.dispatchMessage (Handler.java:95)
  at android.os.Looper.loop (Looper.java:159)
  at android.app.ActivityThread.main (ActivityThread.java:6139)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:886)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:776)

 

デバッグ時は、リリースビルドを使っても全く問題のないアプリである。

 

バイス上のフィードバックの送信では、

java.lang.RuntimeException Unknown animation name: x

で落ちていることが判明。

 

xって何よ???

アニメーションに関する、リソースかクラスが見つからなくて落ちてるっぽい。

 

 

難読化をやめるために

minifyEnabled = false

にしてしまえばコード圧縮・リソース圧縮も無効になるため、当然上記の例外は検出されなくなってしまう。

できたら、Proguardのルールを追加して解決したいため、今回は難読化だけを解除してみる。

 

 

#全クラスの難読化無効?
#-keepnames class ** {*;}

#もっとシンプルで完全な難読化無効スイッチ
-dontobfuscate

 

 

これで、デバッグが捗りそう・・・

 

 

追記:上記トラブル解決編

neet-rookie.hatenablog.com