【发布时间】:2019-02-09 03:35:52
【问题描述】:
在我将下一个依赖项添加到我的 Flutter 项目之后:
cloud_firestore: ^0.9.0
firebase_auth: ^0.8.0+1
google_sign_in: ^4.0.0
我尝试通过单击 Android Studio 中的 运行 按钮来运行该应用,但这里发生了一些奇怪的事情:
案例1:如果我从Android Studio打开Flutter项目根目录,我们称之为my_flutter_app目录,然后单击 run 按钮我得到下一个错误:
D8:无法将请求的类放入单个 dex 文件中(# 方法: 68762 > 65536) java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException:出错时 合并 dex 档案:.dex 文件中方法引用的数量 不能超过 64K。
注意:我完全理解该错误的含义以及如何解决它,事实上,如果我添加已知行来解决它:
multiDexEnabled true
凭借其各自的依赖关系,该应用程序构建良好并部署到设备上而不会出现任何错误。
但奇怪的是接下来:
案例 2: 如果我从 Android Studio 打开同一个 Flutter 应用的 android 目录,我的意思是 my_flutter_app/android 目录,然后单击 run 按钮,应用程序构建良好并部署到设备上,没有出现任何错误。 (是的,不修改任何文件,两种情况完全相同,没有 multiDexEnabled true 行)
那么,我想知道这里发生了什么? 为什么 Android 项目 不 向我显示 64K 方法 DEX 错误,而 Flutter 项目 显示?
我正在努力使我的开发内容尽可能干净,所以如果没有必要,我会犹豫添加 multiDexEnabled true 行,这就是我提出问题的原因。
编辑:以下是每个目录的内容:
这是 Flutter 根目录视图
这是 Android 目录视图
【问题讨论】:
-
尝试运行
flutter clean。 -
我刚刚试了一下,得到了同样的 DEX 错误
标签: android flutter flutter-dependencies