【问题标题】:Execution failed for task ':app:transformClassesAndResourcesWithR8ForRelease'. while trying to get apk of flutter app任务 ':app:transformClassesAndResourcesWithR8ForRelease' 执行失败。在尝试获取颤振应用程序的 apk 时
【发布时间】:2020-05-09 12:11:59
【问题描述】:

我尝试使用

获取我的颤振应用程序的 APK

颤振构建 APK

但它返回了这个错误。我不知道这意味着什么。如果你能帮助我,我会很高兴。如果您需要任何额外的细节来解决错误,请在这篇文章中发表评论

正在运行 Gradle 任务“assembleRelease”... R8:com.google.firebase.iid.zzbb 类型被引用为来自 com.google.firebase.messaging.zzf 的接口。

FAILURE:构建失败并出现异常。

  • 出了什么问题: 任务“:app:transformClassesAndResourcesWithR8ForRelease”执行失败。 com.android.tools.r8.CompilationFailedException:编译失败

  • 尝试: 使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。机智地跑 h --scan 以获得完整的见解。

  • 通过https://help.gradle.org获得更多帮助

在 7m 32s 内构建失败 正在运行 Gradle 任务“assembleRelease”... 运行 Gradle 任务“assembleRelease”...完成 456.4 秒(!) [!] 压缩器可能未能优化 Java 字节码。 要禁用收缩器,请将 --no-shrink 标志传递给此命令。 要了解更多信息,请参阅:https://developer.android.com/studio/build/shrink-code Gradle 任务 assembleRelease 失败,退出代码为 1

【问题讨论】:

  • 嗨,你能解决这个问题吗?
  • 是的,我将所有已安装包的编译sdk版本更改为28,它运行顺利
  • 你之前的版本是什么?
  • 之前是 26,我把它改成 27 让它工作

标签: firebase flutter dart


【解决方案1】:

我正在回答这个问题,因为这是我在搜索错误消息时得到的第一个结果。

我有同样的错误。 R8 原来是二进制 java 文件的“缩小器”,它掩盖了错误背后的问题。在gradle.properties 中,我将android.enableR8true 更改为false 然后重建apk。我得到了一个不同的错误:

...
FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:checkReleaseDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class androidx.lifecycle.ViewModelLazy found in modules lifecycle-viewmodel-2.4.0-runtime.jar (androidx.lifecycle:lifecycle-viewmodel:2.4.0) and lifecycle-viewmodel-ktx-2.2.0-runtime.jar (androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0)
  Duplicate class androidx.lifecycle.ViewModelProviderKt found in modules lifecycle-viewmodel-2.4.0-runtime.jar (androidx.lifecycle:lifecycle-viewmodel:2.4.0) and lifecycle-viewmodel-ktx-2.2.0-runtime.jar (androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0)

  Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.
...

错误是因为我有两个版本的生命周期视图模型运行时:2.2.0 和 2.4.0。我搜索了项目和插件,发现其中只有一个使用 V2.4.0,其余使用 V2.2.0:

    def lifecycle_version = "2.4.0"
    def arch_version = "2.1.0"

    // ViewModel
    implementation "androidx.lifecycle:lifecycle-viewmodel:$lifecycle_version"
    // LiveData
    implementation "androidx.lifecycle:lifecycle-livedata:$lifecycle_version"
    // Lifecycles only (without ViewModel or LiveData)
    implementation "androidx.lifecycle:lifecycle-runtime:$lifecycle_version"

我刚刚将lifecycle_version 更改为2.2.0,我能够毫无错误地构建apk。

别忘了把android.enableR8转回true

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 2020-10-24
    • 1970-01-01
    • 1970-01-01
    • 2020-04-04
    • 2021-01-05
    • 2020-11-29
    • 1970-01-01
    相关资源
    最近更新 更多