5

在我的应用程序中集成性能 sdk 后,gradle 在构建项目时打印以下警告:

java.lang.IllegalStateException: 期待 .,<, 或 ;,但在解压时发现 firebaseperf ;BuilderType:Lcom/google/android/gms/internal/firebase-perf/zzam;>Ljava/lang/Object;Lcom/google/android /gms/internal/firebase-perf/zzdf;

虽然它没有使构建失败,但我不确定这意味着什么,因此在我确定它不会引起任何问题之前,我不想将它投入生产。

有人可以在这里帮忙吗?

Performance sdk version: 15.2.0

Firebase core version: 15.0.2
4

4 回答 4

2

我自己在一个单独的项目中遇到了这个问题。您可以修改传递给 hugo 插件的类路径以省略firebase-perf模块本身。

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

我假设发生这种情况是因为 Google/Firebase 修改了原始方面编译器以支持其他功能,因此在其上运行普通的 ACJ 编译器会使它变得糟糕。

于 2018-09-07T20:31:10.080 回答
1

这是最新版本的 firebase 性能库和 aspectJ 的问题——我想他们正在做一些方面的编织,而您的项目也在编织。如果它是像其他人发布的 Hugo 库,我建议删除它,因为它是一个非常旧的库并且会破坏 android 中的增量构建。

你不应该需要 hugo,因为它只是用于调试日志记录,它对你的构建造成的损害——而且它不支持 kotlin——应该有足够的理由逐步淘汰它。

我 - 用 aspectJ 修复了 kotlin 问题 - 有一个确实需要编织的项目,并且在升级 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 weaving 再次工作,我能够使用最新的 firebase。

于 2019-07-16T17:12:09.720 回答
0

我遇到了同样的问题,我用 File > Invalide Caches / Restart 修复...希望这对你有用。

于 2019-09-09T14:29:37.670 回答
-1

就我而言,这是因为我的项目有冲突插件

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)

希望可以帮助解决您的问题

于 2018-07-20T04:22:49.530 回答