長々しいタイトルですが、今回は Cordova アプリを開発中に遭遇したエラーについて。
なお、プラットフォームは Android です。
Android 9 で、Adobe の画像加工機能がクラッシュする不具合が発生しており、それを修正している最中に遭遇しました。
一部のみ抜粋ですが「java.lang.ClassNotFoundException: Didn’t find class “android.support.v4.animation.AnimatorCompatHelper” on path: DexPathList」とのことでしたので、そのまま「“android.support.v4.animation.AnimatorCompatHelper”ファイルが見つかりません」という意味のようです。
そして今回参考にさせていただいた記事はこちらから。
AnimatorCompatHelper Class Not Found Exception using AppCompat 26.0.0 · Issue #396 · h6ah4i/android-advancedrecyclerview · GitHub
https://github.com/h6ah4i/android-advancedrecyclerview/issues/396
compile 'com.github.h6ah4i:android-advancedrecyclerview:feature~support_libraries_v26-SNAPSHOT'
記事内には上記コードを追加するという方法もありましたが、私の環境ではエラーが発生してうまくいきませんでした。
そのため、下記のコードを build.gradle
の最後に下記を追加する方法を採用しました。
configurations.all { resolutionStrategy.eachDependency { DependencyResolveDetails details -> def requested = details.requested if (requested.group == 'com.android.support') { if (!requested.name.startsWith("multidex")) { details.useVersion '25.4.0' } } } }
あとは、Sync Now を実行します。
なお、以前の投稿記事で紹介したように、AsyncTaskCompat.java
と AsyncTaskCompatHoneycomb.java
を手動で追加していたのですが、ファイルが既に存在しているとのエラーが発生したので、こちらの 2ファイルは削除しました。
で、エラーが発生したので Try Again を実行後、Build → Run したところ、問題なく動作しました。
「効果」のオプションを選択するとそこでクラッシュしていたのですが、再現しなくなりました。
一通り、追加したオプションを使ってみましたがそちらも問題なしでした。
以上、Android アプリで「java.lang.ClassNotFoundException: Didn’t find class “android.support.v4.animation.AnimatorCompatHelper” on path: DexPathList」エラーが発生した時の対処法でした。
どなたかの参考になれば幸いです。