概要
Throwing new exception 'No interface method getPackStates(Ljava/util/List;)Lcom/google/android/play/core/tasks/Task; in class Lcom/google/android/play/core/assetpacks/AssetPackManager; or its super classes (declaration of 'com.google.android.play.core.assetpacks.AssetPackManager' appears in /data/app/~~ITcdG6djEenNnVShaiA_gg==/XXXX-ptk0738eptMnm47ovBW02Q==/base.apk)' with unexpected pending exception: java.lang.NoSuchMethodError: No interface method getPackStates(Ljava/util/List;)Lcom/google/android/play/core/tasks/Task; in class Lcom/google/android/play/core/assetpacks/AssetPackManager; or its super classes (declaration of 'com.google.android.play.core.assetpacks.AssetPackManager' appears in /data/app/~~ITcdG6djEenNnVShaiA_gg==/XXXX-ptk0738eptMnm47ovBW02Q==/base.apk) at void com.unity3d.player.a.a(java.lang.String[], com.unity3d.player.IAssetPackManagerStatusQueryCallback) ((null):-1) at void com.unity3d.player.PlayAssetDeliveryUnityWrapper.getAssetPackStates(java.lang.String[], com.unity3d.player.IAssetPackManagerStatusQueryCallback) ((null):-1) at void com.unity3d.player.PlayAssetDeliveryUnityWrapper.getAssetPackState(java.lang.String, com.unity3d.player.IAssetPackManagerStatusQueryCallback) ((null):-1) at boolean com.unity3d.player.UnityPlayer.nativeRender() ((null):-2) at boolean com.unity3d.player.UnityPlayer.access$300(com.unity3d.player.UnityPlayer) ((null):-1) at boolean com.unity3d.player.UnityPlayer$e$1.handleMessage(android.os.Message) ((null):-1) at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102) at boolean android.os.Looper.loopOnce(android.os.Looper, long, int) (Looper.java:201) at void android.os.Looper.loop() (Looper.java:288) at void com.unity3d.player.UnityPlayer$e.run() ((null):-1)
Logcat を見てみたら強制終了時に上記のエラーが発生していた
GitHub の Issue や Unity の Forum を見てみたら
1.7.0 にダウングレードすると直るとのことだったので
Play Asset Delivery のパッケージと、
Play Asset Delivery のパッケージが依存するすべてのパッケージをダウングレードした
- com.google.play.assetdelivery-1.7.0
- com.google.android.appbundle-1.7.0
- com.google.play.common-1.7.0
- com.google.external-dependency-manager-1.2.169
- com.google.play.core-1.7.0
また、Play アプリ内レビューも実装していたため
Play アプリ内レビューのパッケージもダウングレードする必要があった
- com.google.play.review-1.7.0
これらのパッケージの .tgz を Unity プロジェクトに追加して
Packages/manifest.json を変更した後に Android Resolver の Force Resolve を実行して
Android ビルドしたらアプリが正常に起動するようになった
メモ
Unity 2023.1.0a5 では修正されているとのことだったので
Unity 2022 や Unity 2021 でも修正が入るかもしれない