扑 - 获取64K方法DEX错误从扑项目目录,但无法从Android项目目录

问题描述 投票:1回答:1

之后我加入了未来依赖于我扑项目:

cloud_firestore: ^0.9.0   
firebase_auth: ^0.8.0+1   
google_sign_in: ^4.0.0

我试图通过单击的Android Studio,但奇怪的事情发生在这里的运行按钮来运行应用程序:

案例1:如果我从Android Studio中打开根扑项目目录,让我们称之为my_flutter_app目录,然后点击运行按钮,我得到了一个错误:

D8:在合并DEX档案错误:无法容纳在一个DEX文件要求类(#方法:68762> 65536)了java.lang.RuntimeException:了java.lang.RuntimeException:com.android.builder.dexing.DexArchiveMergerException数在.DEX文件的方法引用不能超过64K。

注:我完全明白是什么错误意味着以及如何解决这个问题,其实如果我添加已知线来解决这个问题:

multiDexEnabled true

凭借其各自的依赖应用构建罚款和部署到设备没有得到任何错误。

但奇怪的是下一个:

案例2:如果我打开从Android Studio中相同扑应用程序的Android的目录,我的意思是my_flutter_app / Android的目录,然后点击运行按钮的应用程序是建立了良好并部署到该设备没有得到任何错误。 (是的,无需修改任何文件,正是这两种情况下相同的情况下,没有multiDexEnabled true线)

所以,我想知道这里发生了什么?为什么Android项目不显示我的64K方法DEX错误而扑项目呢?

我试图让我的开发的东西尽可能的干净,所以我在犹豫,如果是没有必要添加multiDexEnabled true线,所以这是我的问题的原因。

编辑:这是每个目录的内容:

这是扑根目录视图

This is the Flutter root directory view

这是Android的目录视图

This is the Android directory view

android flutter flutter-dependencies
1个回答
0
投票

类在一个单一的文件DEX(#方法:68762> 65536)

这清楚地告诉你,你的方法计数比单个DEX文件(64K)可接受的方法计数较高。

因此,为了解决这个问题,你应该在gradle这个文件来实现multidex或从项目中删除不必要或不使用的第三方库。

如果你问这是为什么只有Android Studio中发生了什么?那么原因可能是这是由Android Studio中加载了一些默认的核心类。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.