Флаттер: возможно, не удалось оптимизировать байт-код Java - PullRequest
0 голосов
/ 18 марта 2020

Я пытаюсь интегрировать облачное хранилище и приложение android, но все, что я получаю, это эту ошибку каждый раз

Запуск lib / main.dart на Android SDK для x86 в режиме отладки ... Примечание: /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: не проверено для деталей. D8: Невозможно разместить запрошенные классы в одном файле dex (# методы: 76095> 65536) com. android .builder.dexing.DexArchiveMergerException: ошибка при объединении архивов dex: количество ссылок на методы в файле .dex не может превышать 64K

FAILURE: сборка завершилась с исключением.

  • Что пошло не так: выполнение задачи не выполнено: app: mergeDexDebug '.

    Произошла ошибка при выполнении com. android .build.gradle.internal.tasks.Workers $ ActionFacade com. android .builder.dexing.DexArchiveMergerException: ошибка при объединении архивов dex: количество ссылок на методы в файле .dex не может превышать 64К. Узнайте, как решить эту проблему в https://developer.android.com/tools/building/multidex.html

  • Попробуйте: Запустите с параметром --stacktrace, чтобы получить трассировку стека. Запустите с параметром --info или --debug, чтобы получить больше вывода журнала. Запустите --scan, чтобы получить полное представление.

  • Получите дополнительную помощь по https://help.gradle.org

BUILD FAILED in 6 м 10 с [!] Возможно, термоусадочная машина не смогла оптимизировать байт-код Java. Чтобы отключить усадку, передайте флаг --no-shrink этой команде. Чтобы узнать больше, см .: https://developer.android.com/studio/build/shrink-code Исключение: сбой задачи Gradle. Отладка завершена с кодом завершения 1 Exited (sigterm)

Ответы [ 4 ]

4 голосов
/ 27 марта 2020

В build.gradle приложения

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

Измените minSdkversion с 16 на 21, в моем случае это работало

3 голосов
/ 19 марта 2020

У меня возникла аналогичная проблема при кодировании с флаттером, но BUILD FAILED in 9s Running Gradle task 'assembleDebug'...<br> Running Gradle task 'assembleDebug'... Done 11.0s [!] The shrinker may have failed to optimize the Java bytecode. To disable the shrinker, pass the - без сжатия flag to this command. To learn more, see: https://developer.android.com/studio/build/shrink-code Gradle task assembleDebug failed with exit code 1

Но мне удалось запустить мое приложение, и вот как я это сделал.

1.Я обнаружил файл android / app / build.gradle 2. Затем откройте код ниже в файле gradle

    buildTypes {
    release {

        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug
    }
}

}

и измените его на

buildTypes {
    debug {
        minifyEnabled true

        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` works.
        signingConfig signingConfigs.debug
    }
}

}

Приложение удалось запустить в Android эмуляторе

0 голосов
/ 05 мая 2020

enter image description here

defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.placementapp"
        minSdkVersion 23 //replace 23
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
0 голосов
/ 12 апреля 2020

Есть два разных ответа на этот вопрос, но я думаю, что наиболее подходящим является ответ, данный @Sarang Pal. Это официальное объяснение Google:

Устранение неполадок Android ошибка сборки:

Если вы планируете разрабатывать с использованием устройства или эмулятора Android, вам потребуется поддержка поддержки multidex - в противном случае сборка завершится с ошибкой «Невозможно разместить запрошенные классы в одном файле dex».

По умолчанию Flutter поддерживает Android SDK v16 (Jelly Bean, выпущенный в 2012 году), но multidex на самом деле не работает с Jelly Bean (хотя это возможно). Настройка Jelly Bean для работы выходит за рамки этой кодовой метки, поэтому мы изменим минимальную целевую версию SDK с v16 на v21 (Lollipop, выпуск 2014 г.).

Чтобы изменить минимальную целевую версию SDK:

  1. Откройте android / app / build.gradle, затем найдите строку с надписью minSdkVersion 16.
  2. Измените эту строку на minSdkVersion 21.
  3. Сохраните файл.

https://codelabs.developers.google.com/codelabs/flutter-firebase/index.html#3

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...