Java – Flutter :The shrinker may have failed to optimize the Java bytecode

androidfirebasefluttergoogle-cloud-firestorejava

I'm trying to integrate cloud firestore to and android app but all I get is this error every single time

Launching lib/main.dart on Android SDK built for x86 in debug mode…
Note: /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 uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
D8: Cannot fit requested classes in a single dex file (# methods: 76095 > 65536)
com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
The number of method references in a .dex file cannot exceed 64K

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':app:mergeDexDebug'.

    A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
    com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives:
    The number of method references in a .dex file cannot exceed 64K.
    Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html

  • Try:
    Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output. Run with –scan to get full insights.

  • Get more help at https://help.gradle.org

BUILD FAILED in 6m 10s
[!] The shrinker may have failed to optimize the Java bytecode.
To disable the shrinker, pass the --no-shrink flag to this command.
To learn more, see: https://developer.android.com/studio/build/shrink-code
Exception: Gradle task assembleDebug failed with exit code 1
Exited (sigterm)

Best Answer

In the app's build.gradle

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

Change the minSdkversion from 16 to 21, this worked in my case