Мониторинг производительности Firebase, не могу прибор ... IllegalArgumentException - PullRequest
1 голос
/ 05 марта 2020

Я использую 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

1 Ответ

0 голосов
/ 06 марта 2020

У меня была та же проблема, и исправление было в том, чтобы переместить classpath производительности 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 использует версию 7.0 org.ow2.asm: asm Плагин Jacoco использует 5. + org.ow2.asm: asm

Чтобы проверить версии, которые вы можете попробовать использовать ./gradlew buildEnvironment

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

Может быть, у вас такая же проблема, как у меня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...