颤动:收缩器可能无法优化Java字节码

我正在尝试将云消防商店集成到Android应用程序中,但我每次都得到这个错误

在调试模式下为x86构建的Android SDK上启动lib/ main.dart...注意: /home/tr/DevTools/flutter/.pub-cache/hosted/pub.dartlang.org/cloud_firestore-0.13.4+2/android/src/main/java/io/flutter/plugins/firebase/cloudfirestore/CloudFirestorePlugin.java使用未经检查或不安全的操作。注意:使用 -Xlint:uncheck 重新编译以了解详细信息。D8:无法在单个 dex 文件中容纳请求的类(# 方法:76095 > 65536) com.android.builder.dexing.DexArchiveMerger例外:合并 dex 存档时出错:.dex 文件中的方法引用数不能超过 64K

失败:生成失败,出现异常。

  • 问题所在:任务“:app:mergeDexDebug”的执行失败。

    执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade com.android.builder.dexing.DexArchiveMergerException:合并 dex 存档时出错:.dex 文件中的方法引用数不能超过 64K。了解如何解决此问题,请 https://developer.android.com/tools/building/multidex.html

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

  • https://help.gradle.org 获取更多帮助

构建在 6 分钟 10 秒内失败 [!]收缩程序可能无法优化 Java 字节码。要禁用收缩程序,请将标志传递给此命令。若要了解详细信息,请参阅:https://developer.android.com/studio/build/shrink-code 异常:Gradle 任务组装调试失败,退出代码为 1 已退出(sigterm)--no-shrink


答案 1

在应用的 build.gradle 中

 defaultConfig {
        applicationId "com.company.test"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 }

将minSdkversion从16更改为21,这在我的情况下有效


答案 2

您只需要将 minsdkversion 更改为 21 而不是 16。

android\app\build.gradle

 defaultConfig {
        applicationId "com.company.example"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
 }

它工作或我。;)


推荐