Android Firebase性能监视库与作为签名JAR分发的库不兼容

Android Firebase性能监视库与作为签名JAR分发的库不兼容,android,firebase,gradle,androidx,firebase-performance,Android,Firebase,Gradle,Androidx,Firebase Performance,将我的项目从27更新为AndroidX和targetSdkVersion,从28更新为28之后,我在尝试构建时遇到以下gradle错误: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithFirebasePerformancePluginFor[Flavour]'. at org.gradle.api.internal.tasks.executi

将我的项目从27更新为AndroidX和targetSdkVersion,从28更新为28之后,我在尝试构建时遇到以下gradle错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWithFirebasePerformancePluginFor[Flavour]'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:110)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
    at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:51)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:46)
    at org.gradle.execution.taskgraph.LocalTaskInfoExecutor.execute(LocalTaskInfoExecutor.java:42)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:277)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareWorkItemExecutor.execute(DefaultTaskExecutionGraph.java:262)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:135)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:130)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.execute(DefaultTaskPlanExecutor.java:200)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.executeWithWork(DefaultTaskPlanExecutor.java:191)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$ExecutorWorker.run(DefaultTaskPlanExecutor.java:130)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.SecurityException: SHA-256 digest error for META-INF/maven/at.favre.lib/bcrypt/pom.xml
    at sun.security.util.ManifestEntryVerifier.verify(ManifestEntryVerifier.java:218)
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:241)
    at java.util.jar.JarVerifier.update(JarVerifier.java:228)
    at java.util.jar.JarInputStream.read(JarInputStream.java:212)
    at com.google.common.io.ByteStreams.toByteArrayInternal(ByteStreams.java:181)
    at com.google.common.io.ByteStreams.toByteArray(ByteStreams.java:221)
    at com.google.firebase.perf.plugin.instrumentation.Instrument.instrumentClassesInJar(Instrument.java:105)
    at com.google.firebase.perf.plugin.FirebaseTransform.transformJarInputs(FirebaseTransform.java:230)
    at com.google.firebase.perf.plugin.FirebaseTransform.transform(FirebaseTransform.java:192)
    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.GeneratedMethodAccessor899.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:131)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
    ... 34 more
错误指向项目中使用的库。但是我已经用
jarsigner
验证了jar签名,它是有效的

我正在使用:

  • 安卓工作室3.3金丝雀13
  • 格拉德尔4.10.2
  • Gradle 3.2.0的Android插件
  • Firebase性能监控Gradle插件1.1.5
  • Firebase性能监控16.1.2
如果我从项目中删除Firebase性能监视依赖项,一切都会正常工作

有,但这是由杰科科引起的。我根本不用杰科科

有什么想法吗?多谢各位


2018年10月12日更新:

复制问题的示例应用程序:

2018年10月26日更新:

我已经能够使用Firebase性能监控库以及作为签名jar分发的任何其他库来重现该错误

2018年10月26日更新:

如果启用Instant Run,则会在Instant Run gradle任务中出现相同的错误(尽管针对不同的文件):

Execution failed for task ':app:transformClassesWithInstantRunForDebug'.
> com.android.build.api.transform.TransformException: java.lang.SecurityException: java.lang.SecurityException: SHA-256 digest error for at/favre/lib/crypto/bcrypt/BCryptFormatter.class

Firebase支持团队已经确认了我,这是他们最后的一个bug。但他们提出了这种暂时的解决办法:

我们调查了一下,发现了一个bug。然而,我们能够找出一个 为您解决此问题:

步骤1)在
gradle wrapper.properties
文件中,更新 分配资源:

distributionUrl=https://services.gradle.org/distributions/gradle-5.0-all.zip

步骤2)在顶层
build.gradle
文件中更新Android Gradle插件:

classpath'com.android.tools.build:gradle:3.4.0-alpha05'

步骤3)在
gradle.properties
文件中添加以下行:

#黑名单库不被犹太化

android.jetifier.blacklist=bcrypt,字节

步骤4)清洁构建项目

现在运行
/gradlew:app:assembleDebug
应该成功了

当我们正在修复时,请使用上面的解决方法 你可以开始跑步了。再次在此等候,我深表歉意


看起来这在新的Firebase Gradle插件版本(1.2.0)上得到了修复。
您仍然需要将AS 3.4与3.4 Android Gradle插件一起使用。

您是否尝试更改firebase版本?是的,我尝试过firebase Performance Monitoring 16.1.0(我目前在生产中使用的版本),但我得到了相同的错误。您对此有任何来源吗?我给firebase支持的电子邮件?我得到的最新更新(04/02/19):>感谢您到目前为止的耐心等待。我想联系你,让你知道我们已经发现了问题,现在正在解决这个问题。目前,我无法提供进一步的更新或ETA。请放心,我们正在尽一切努力尽快实现这一目标。