java.lang.IllegalStateException: Expecting ., <, или;, но при распаковке обнаружил firebaseperf

После интеграции производительности SDK в мое приложение Gradle выводит следующее предупреждение при сборке проекта:

java.lang.IllegalStateException: Expecting.,<, или;, но обнаружил firebaseperf при распаковке; BuilderType: Lcom / google / android / gms / internal /firebase-perf / zzam;>Ljava / lang / Object; Lcom / google / android / г / внутренний /firebase-перфорация /zzdf;

Хотя сборка не проваливается, я не уверен, что это значит, и поэтому не хочу запускать это в производство, пока не буду уверен, что это не вызовет никаких проблем.

Может кто-нибудь, пожалуйста, помогите здесь?

Performance sdk version: 15.2.0

Firebase core version: 15.0.2

2 ответа

Я сам столкнулся с этим с отдельным проектом. Вы можете изменить classpath, который передается плагину Хьюго, чтобы пропустить firebase-perf сам модуль.

    def filtered_class_filetree = javaCompile.classpath.asFileTree.filter {
        !it.canonicalPath.contains("firebase-perf")
    }

Я предполагаю, что это происходит из-за того, что Google/Firebase изменил оригинальный компилятор аспектов для поддержки других функциональных возможностей, таким образом, запуск обычного компилятора ACJ делает его бесполезным.

Это проблема с последней версией библиотеки производительности firebase и аспектом J - я полагаю, что они занимаются некоторым переплетением аспектов, и ваш проект также выполняет переплетение. Если это библиотека hugo, как и некоторые другие люди, я бы рекомендовал удалить ее, так как это очень старая библиотека и нарушает инкрементные сборки в android.

Вам не нужен hugo, поскольку он предназначен только для ведения журнала отладки и ущерба, который он наносит вашим сборкам - и он не поддерживает kotlin - должен быть достаточной причиной для его постепенного отказа.

У меня, исправив проблему kotlin с аспектом J, есть проект, который действительно нуждается в переплетении, и я получил эту ошибку при обновлении firebase. Исправлено путем фильтрации классов, не относящихся к проекту, из такого плетения в моем скрипте сборки:

String[] javaArgs = ["-showWeaveInfo",
                                 "-1.8",
                                 "-inpath", javaCompile.destinationDir.toString(),
                                 "-aspectpath", javaCompiler.classpath.asFileTree.filter {
                !it.canonicalPath.contains("transforms")
            }.asPath,
                                 "-d", javaCompile.destinationDir.toString(),
                                 "-classpath", javaCompile.classpath.asPath,
                                 "-bootclasspath", project.android.bootClasspath.join(
                    File.pathSeparator)]

Плетение AspectJ снова заработало, и я смог использовать последнюю версию firebase.

В моем случае это из-за плагинов конфликта мой проект имеет

classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1'

apply plugin: 'com.google.firebase.firebase-perf'
apply plugin: 'com.jakewharton.hugo'


compile 'com.google.firebase:firebase-core:16.0.1'
compile 'com.google.firebase:firebase-perf:16.0.0'

Я попытался воспроизвести его на пустом проекте, и после удаления Гюго проблема была устранена, это предыдущий фрагмент журнала из моего

java.lang.IllegalStateException: Expecting .,<, or ;, but found firebaseperf while unpacking <MessageType:Lcom/google/android/gms/internal/firebase-perf/zzal<TMessageType;TBuilderType;>;BuilderType:Lcom/google/android/gms/internal/firebase-perf/zzam<TMessageType;TBuilderType;>;>Ljava/lang/Object;Lcom/google/android/gms/internal/firebase-perf/zzdf;
    at org.aspectj.util.GenericSignatureParser.parseClassTypeSignature(GenericSignatureParser.java:221)
    at org.aspectj.util.GenericSignatureParser.parseFieldTypeSignature(GenericSignatureParser.java:155)
    at org.aspectj.util.GenericSignatureParser.parseFormalTypeParameter(GenericSignatureParser.java:130)
    at org.aspectj.util.GenericSignatureParser.parseAsClassSignature(GenericSignatureParser.java:51)
    at org.aspectj.weaver.UnresolvedType.forGenericTypeSignature(UnresolvedType.java:274)
    at org.aspectj.weaver.bcel.BcelWorld.addSourceObjectType(BcelWorld.java:482)

Надеюсь, может помочь решить вашу проблему

Я столкнулся с той же проблемой, и я решил ее с помощью File > Invalide Caches / Restart... Надеюсь, это будет полезно для вас.

Другие вопросы по тегам