android – Flutter的Multidex问题
我在使用
Android Studio中的Flutter时使用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依赖项,但不知道如何处理Flutter App的“为multidex配置应用程序”中的第2步,或者即使遗漏那一步是否是问题. 重新创建的步骤: >从工具栏中选择File / New / New Flutter Project dependencies: flutter_google_place_picker: "^0.0.1" location: "^1.2.0" >点击包进入Android Studio或运行flutter包进入项目目录 dependencies { compile 'com.android.support:multidex:1.0.1' } android { defaultConfig { multiDexEnabled true } } >从工具栏中选择“运行/运行” 我试过的其他事情 >使用以下各项替换build.gradle中的“compile”依赖项: 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文件,启用multidex并添加multidex依赖项. 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 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:UsersDaveAppDataLocalAndroidsdk ? Android NDK location not configured (optional; useful for native profiling support) ? Platform android-27,build-tools 27.0.3 ? Java binary at: D:AndroidDevjrebinjava ? 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! 解决方法
你的两个软件包似乎不同意它们的传递依赖性.一个人想要11.6.,另一个想要一些播放服务依赖.由于11.6.2和11.8.0都在那里,这最终会导致冲突.
如果在android /文件夹中运行./gradlew androidDependencies,则会获得依赖项解析结果的列表,其中包含以下内容: +--- :flutter_google_place_picker (variant: release) +--- com.google.android.gms:play-services-location:11.8.0@aar +--- com.google.android.gms:play-services-places:11.6.2@aar +--- com.google.android.gms:play-services-maps:11.6.2@aar +--- com.google.android.gms:play-services-base:11.8.0@aar +--- com.google.android.gms:play-services-tasks:11.8.0@aar +--- com.google.android.gms:play-services-basement:11.8.0@aar 这些11.6.2和11.8.0软件包不能一起使用.要解决此问题,您需要修补您的依赖项以使其彼此一致,或者将依赖性覆盖添加到您的android / app / build.gradle文件的顶级并希望获得最佳: configurations.all { resolutionStrategy { force 'com.google.android.gms:play-services-places:11.8.0' force 'com.google.android.gms:play-services-location:11.8.0' } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |