我在Android Studio中使用Ffltter使用Gradle编译时出现以下错误:
Dex: Error converting bytecode to dex:
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzcew;
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzcew;
[... stacktrace omitted for brevity ...]
* What went wrong:
Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'.
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzcew;
简本
正如预期的那样,只有当我添加足够的依赖项时,才会发生这种情况.我已经启用了multidex,并按照说明(https://developer.android.com/studio/build/multidex.html)在Android项目build.gradle
文件中添加了multidex依赖项,但我不确定如何处理"将您的应用程序配置为Multidex"中的步骤2,甚至不确定该步骤的遗漏是否是问题所在.
重新创建的步骤:
- 从工具栏中 Select
File/New/New Flutter Project
- Select "Flutter 应用"
- 包括Kotlin&;SWIFT支持
- 判断应用程序是否编译并运行
-
将以下内容添加到
pubspec.yaml
中的依赖项中:dependencies: flutter_google_place_picker: "^0.0.1" location: "^1.2.0"
- 在Android Studio中点击
Packages Get
或在项目目录中运行flutter packages get
-
修改
android/app/build.gradle
,在适当位置增加以下章节:dependencies { compile 'com.android.support:multidex:1.0.1' } android { defaultConfig { multiDexEnabled true } }
- 从工具栏中 Select
Run/Run
我试过的其他东西
-
将
build.gradle
中的"编译"依赖项替换为以下各项:compile 'com.android.support:multidex:1.0.3' implementation 'com.android.support:multidex:1.0.1' implementation 'com.android.support:multidex:1.0.3'
遵循我的每个依赖项的多重索引步骤;即修改它们的
build.gradle
个文件,启用多重索引并添加多重依赖项.- 将我的项目及其依赖项的
build.gradle
个文件中的每个文件中的minSdkVersion修改为21和27中的每一个,并为它们启用Multidex. - 为我的项目启用缩小功能.
- 用
geolocation: "^0.2.1"
代替location: "^1.2.0"
-
根本不启用Multidex(即跳过重新创建的步骤7).这会导致以下错误:
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'. > java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
Flutter 指示器输出
$ flutter doctor -v
[√] Flutter (Channel beta, v0.2.8, on Microsoft Windows [Version 10.0.16299.371], locale en-GB)
• Flutter version 0.2.8 at D:\flutter
• Framework revision b397406561 (2 weeks ago), 2018-04-02 13:53:20 -0700
• Engine revision c903c217a1
• Dart version 2.0.0-dev.43.0.flutter-52afcba357
[√] Android toolchain - develop for Android devices (Android SDK 27.0.3)
• Android SDK at C:\Users\Dave\AppData\Local\Android\sdk
• Android NDK location not configured (optional; useful for native profiling support)
• Platform android-27, build-tools 27.0.3
• Java binary at: D:\AndroidDev\jre\bin\java
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
• All Android licenses accepted.
[√] Android Studio (version 3.1)
• Android Studio at D:\AndroidDev
• Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1024-b02)
[√] Connected devices (1 available)
• Android SDK built for x86 64 • emulator-5554 • android-x64 • Android 5.1.1 (API 22) (emulator)
• No issues found!