Firebase 性能监控,无法检测...IllegalArgumentException

Jia*_*Tse 5 firebase firebase-performance

我正在使用 implementation 'com.google.firebase:firebase-perf:19.0.5'

我应用了插件: apply plugin: 'com.google.firebase.firebase-perf'

在我的项目级别gradle中: classpath 'com.google.firebase:perf-plugin:1.3.1'

我遇到了一些问题。1) 在我的构建过程中,我看到了很多这样的Can't instrument异常:

Can't instrument: kotlin/reflect/jvm/internal/impl/load/java/lazy/descriptors/LazyJavaClassMemberScope$nestedClasses$1$enumMemberNames$1.class
java.lang.IllegalArgumentException
        at org.objectweb.asm.ClassVisitor.<init>(ClassVisitor.java:79)
        at com.google.firebase.perf.plugin.instrumentation.InstrumentationVisitor.<init>(InstrumentationVisitor.java:55)
        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)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
        at sun.reflect.GeneratedMethodAccessor190.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:103)
        at
Run Code Online (Sandbox Code Playgroud)

2)我只看到日志TraceMetric,没有NetworkRequestMetric。API 调用使用 Retrofit2,它使用 OkHttp3

小智 1

我遇到了同样的问题,解决方法是将 firebase 性能的类路径移到依赖于“org.ow2.asm:asm”(在项目级别 gradle 文件中)的其他插件之前。

  dependencies {
    classpath 'com.google.firebase:perf-plugin:1.3.1'
    classpath "org.jacoco:org.jacoco.core:$jacoco_version"
    ...
 }
Run Code Online (Sandbox Code Playgroud)

Firebase 插件使用 org.ow2.asm:asm 7.0 版本 Jacoco 插件使用 org.ow2.asm:asm 5.+ 版本

要检查版本,您可以尝试使用 ./gradlew buildEnvironment

https://www.gitmemory.com/issue/gradle/gradle/9650/499815877

也许你和我有同样的问题。