Android 向け Performance Monitoringを取り入れてビルドするとエラーが、、、
設定では、Java1.8準拠としているので、Java 6でJSR/RETバイトコードペアが廃止されたやつが出る
> Task :app:checkProdReleaseDuplicateClasses
Can't instrument: org/apache/commons/digester/plugins/strategies/FinderFromFile.class
java.lang.IllegalArgumentException: JSR/RET are not supported with computeFrames option
at org.objectweb.asm.Frame.execute(Frame.java:1009)
at org.objectweb.asm.MethodWriter.visitJumpInsn(MethodWriter.java:1156)
at org.objectweb.asm.MethodVisitor.visitJumpInsn(MethodVisitor.java:473)
at org.objectweb.asm.commons.AdviceAdapter.visitJumpInsn(AdviceAdapter.java:517)
at org.objectweb.asm.ClassReader.readCode(ClassReader.java:2040)> Task :app:transformClassesWithFirebasePerformancePluginForProdRelease
at org.objectweb.asm.ClassReader.readMethod(ClassReader.java:1275)
at org.objectweb.asm.ClassReader.accept(ClassReader.java:679)
at com.google.firebase.perf.plugin.instrumentation.Instrument.instrument(Instrument.java:170)
at com.google.firebase.perf.plugin.instrumentation.Instrument.instrumentClassesInJar(Instrument.java:117)
at com.google.firebase.perf.plugin.FirebasePerfTransform.performTransformationFor(FirebasePerfTransform.java:563)
at com.google.firebase.perf.plugin.FirebasePerfTransform.transformJarInputs(FirebasePerfTransform.java:445)
at com.google.firebase.perf.plugin.FirebasePerfTransform.transform(FirebasePerfTransform.java:416)
原因
Android Studioで外部ライブラリの参照を確認すると
「commons-digester:1.8」となっていた、1.8とはだいぶお古い。。。
これは、自分でimplementationしたライブラリではないので
対応
確か、3.xぐらいまで出てたよなと、リポジトリには2.1があったので
自分で、implementationで追加してみた
「commons-digester:2.1」
implementation 'commons-digester:commons-digester:2.1'
もう一度、外部ライブラリの参照を確認すると
今度は、2.1になって、1.8は参照されなくなっている
この状態でもう一度ビルドしてみると
見事エラーは出なくなりました。