【问题标题】:Firebase Performance Monitoring, Can't instrument...IllegalArgumentExceptionFirebase 性能监控,无法检测...IllegalArgumentException
【发布时间】:2020-03-04 21:11:35
【问题描述】:

我正在使用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

2) 我只看到记录 TraceMetric 而没有看到 NetworkRequestMetric。 API 调用使用的是 Retrofit2,它使用 OkHttp3

【问题讨论】:

  • 如果插件未按您预期的方式运行,请打开一份带有 Firebase 支持的错误报告,以便他们进行调查。您需要提供有关如何构建和运行应用程序的非常具体的信息,包括代码。您在此处显示的第一个问题可能不是问题。 support.google.com/firebase/contact/support

标签: firebase firebase-performance


【解决方案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"
    ...
 }

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-10
    • 2019-10-27
    • 1970-01-01
    相关资源
    最近更新 更多