任务“ : app: mergeDexDebug”执行失败

试图在我的项目中使用 Firest。我的项目是一个全新的项目,但是在我的设备上运行这个应用程序时遇到了一些问题而没有得到一个错误: 任务“ : app: mergeDexDebug”执行失败。

我的应用程序正在使用 AndroidX。我已经添加了我的 google-services. json 文件,按照步骤等。

Yaml 文件:

dependencies:
cloud_firestore: ^0.13.3

Android/build.gradle:

com.google.gms:google-services:4.3.3

完全错误:

失败: 构建失败,有异常。

出了什么问题: 任务“ : app: mergeDexDebug”执行失败。 执行 com.android.build.gradle.interal.asks 时发生错误 异常: 合并 dex 归档时出错: Dex 文件中的方法引用数不能超过64K。 了解如何在 < a href = “ https://developer.android.com/tools/building/multidex.html”rel = “ norefrer”> https://developer.android.com/tools/building/multidex.html 解决这个问题

101408 次浏览

The problem is with multidex builder. Actually, this often happens when you have imported a lot of packages in your yaml file which cannot fit into a single .dex built hence you have to enable multidex.

Go to android/app/build.gradle and add the following lines of codes:

dependencies {
implementation 'com.android.support:multidex:2.0.1' //enter the latest multidex version
}
android {
defaultConfig {
multiDexEnabled true
}
}

Fixed the issue, but don't understand why. Why do I need to enable multiDex when I believe Firestore is using AndroidX?

Anyway, the fix. Add multiDexEnabled true to your app/build.gradle

defaultConfig {
// TODO: Specify your own unique Application ID
(https://developer.android.com/studio/build/application-id.html).
applicationId "com.example.poll"
minSdkVersion 16
targetSdkVersion 28
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
//This line here...
multiDexEnabled true
}

When your app and the libraries it references exceed 65,536 methods, you encounter a build error that indicates your app has reached the limit of the Android build architecture: https://developer.android.com/studio/build/multidex

add multiDexEnabled true in app/build.gradle defaultConfig at last.

defaultConfig{ ... multiDexEnabled true }

You can follow the guidelines mentioned here

https://developer.android.com/studio/build/multidex

or to cut the story short and directly go to answer

Find android/app/build.gradle file and add the following lines of codes:

dependencies {
compile 'com.android.support:multidex:1.0.3'
//find latest version from here https://developer.android.com/studio/build/multidex
}


android {
defaultConfig {
multiDexEnabled true
}
}

If you are using AndroidX,

Add below lines to app/build.gradle

multiDexEnabled true // to the defaultConfig {}

implementation 'androidx.multidex:multidex:2.0.1' // to the dependencies

To the AndroidManifest.xml (Optional)

<application
android:name="androidx.multidex.MultiDexApplication"

Please note that you have to extends MainActivity to the MultiDexApplication. If you change android:name.

I just met with this error, and it turns out it can be fixed easily. Of course, other answers on this are really great and it tells you how to fix it. However, I was wondering why this even happened. It turns out this comes from the minSdkVersion used. If this is set to 20 or lower, you need to configure your app for multiDex support.

   defaultConfig {
applicationId "com.inspire.aaym"
minSdkVersion 21
targetSdkVersion 30
}

So, if you app is not intended to be used in Android version prior to 5.0, setting the minSdkVersion number to 21 will easily fix this issue. If not, follow the workaround to enable mutiDex support.

Read more from the official document: https://developer.android.com/studio/build/multidex#mdex-gradle

in app/build.gradle make sure your minSdkVersion should be greater or equal to 21

defaultConfig {

    minSdkVersion 21


targetSdkVersion 30


versionCode flutterVersionCode.toInteger()


versionName flutterVersionName


}

In 2022 : Execution failed for task ':app:mergeExtDexDebug'. Solved it by Changing:

android {
compileSdkVersion 29


compileOptions {
sourceCompatibility kotlin_version
targetCompatibility kotlin_version
}

To

android {
compileSdkVersion 29


compileOptions {
sourceCompatibility 1.8
targetCompatibility 1.8
}

And Also Added:

multiDexEnabled true

to

defaultConfig {


}

this error when test Device is Change!Clear Build folder from project and rerun again.good lock