为方法数超过 64K 的应用启用 MultiDex
AndroidStudio报错信息
> Task :launcher:mergeDexDebug FAILED ERROR:: D8: Cannot fit requested classes in a single dex file (# methods: 135451 > 65536 ; # fields: 71268 > 65536) com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html at com.android.builder.dexing.D8DexArchiveMerger.getExceptionToRethrow(D8DexArchiveMerger.java:128) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:115) at com.android.build.gradle.internal.transforms.DexMergerTransformCallable.call(DexMergerTransformCallable.java:111) at com.android.build.gradle.internal.tasks.DexMergingWorkAction.merge(DexMergingTask.kt:805) at com.android.build.gradle.internal.tasks.DexMergingWorkAction.run(DexMergingTask.kt:760) at com.android.build.gradle.internal.profile.ProfileAwareWorkAction.execute(ProfileAwareWorkAction.kt:74) at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:67) at org.gradle.workers.internal.NoIsolationWorkerFactory$1$1.create(NoIsolationWorkerFactory.java:63) at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:97) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.lambda$execute$0(NoIsolationWorkerFactory.java:63) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44) at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75) at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153) at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68) at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62) at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:76) at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:76) at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41) at org.gradle.workers.internal.NoIsolationWorkerFactory$1.execute(NoIsolationWorkerFactory.java:60) at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:200) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:214) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164) at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) at java.base/java.lang.Thread.run(Thread.java:829) Caused by: com.android.tools.r8.CompilationFailedException: Compilation failed to complete, position: null at Version.fakeStackEntry(Version_2.2.71.java:0) at com.android.tools.r8.utils.a0.a(SourceFile:89) at com.android.tools.r8.D8.run(D8.java:11) at com.android.builder.dexing.D8DexArchiveMerger.mergeDexArchives(D8DexArchiveMerger.java:113) ... 36 more Caused by: com.android.tools.r8.utils.b: Cannot fit requested classes in a single dex file (# methods: 135451 > 65536 ; # fields: 71268 > 65536) at com.android.tools.r8.utils.V0.a(SourceFile:22) at com.android.tools.r8.utils.V0.a(SourceFile:25) at com.android.tools.r8.dex.P.a(SourceFile:55) at com.android.tools.r8.dex.P$h.a(SourceFile:7) at com.android.tools.r8.dex.b.a(SourceFile:14) at com.android.tools.r8.dex.b.c(SourceFile:30) at com.android.tools.r8.D8.d(D8.java:163) at com.android.tools.r8.D8.b(D8.java:1) at com.android.tools.r8.utils.a0.a(SourceFile:47) ... 38 more > Task :unityLibrary:lint e: C:/Users/admin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.6.10/b8af3fe6f1ca88526914929add63cf5e7c5049af/kotlin-stdlib-1.6.10.jar!/META-INF/kotlin-stdlib.kotlin_module: Module was compiled with an inco mpatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/transforms-3/0c86e166a84664774fc946b59b6a559e/transformed/jetified-core-ktx-1.9.0-alpha02/jars/classes.jar!/META-INF/core-ktx_release.kotlin_module: Module was compiled with an incompatible version o f Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/transforms-3/475dc8edcd43fc8a44d5a59c19d09b6b/transformed/mint-mediation-sdk-1.2.0.2/jars/classes.jar!/META-INF/mint-android-sdk_release.kotlin_module: Module was compiled with an incompatible versio n of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.6.10/c118700e3a33c8a0d9adc920e9dec0831171925/kotlin-stdlib-common-1.6.10.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was c ompiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. > Task :launcher:lint e: C:/Users/admin/.gradle/caches/transforms-3/0c86e166a84664774fc946b59b6a559e/transformed/jetified-core-ktx-1.9.0-alpha02/jars/classes.jar!/META-INF/core-ktx_release.kotlin_module: Module was compiled with an incompatible version o f Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.6.10/b8af3fe6f1ca88526914929add63cf5e7c5049af/kotlin-stdlib-1.6.10.jar!/META-INF/kotlin-stdlib.kotlin_module: Module was compiled with an inco mpatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/transforms-3/475dc8edcd43fc8a44d5a59c19d09b6b/transformed/mint-mediation-sdk-1.2.0.2/jars/classes.jar!/META-INF/mint-android-sdk_release.kotlin_module: Module was compiled with an incompatible versio n of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.6.10/c118700e3a33c8a0d9adc920e9dec0831171925/kotlin-stdlib-common-1.6.10.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was c ompiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.6.10/b8af3fe6f1ca88526914929add63cf5e7c5049af/kotlin-stdlib-1.6.10.jar!/META-INF/kotlin-stdlib.kotlin_module: Module was compiled with an inco mpatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/transforms-3/0c86e166a84664774fc946b59b6a559e/transformed/jetified-core-ktx-1.9.0-alpha02/jars/classes.jar!/META-INF/core-ktx_release.kotlin_module: Module was compiled with an incompatible version o f Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib-common/1.6.10/c118700e3a33c8a0d9adc920e9dec0831171925/kotlin-stdlib-common-1.6.10.jar!/META-INF/kotlin-stdlib-common.kotlin_module: Module was c ompiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. e: C:/Users/admin/.gradle/caches/transforms-3/475dc8edcd43fc8a44d5a59c19d09b6b/transformed/mint-mediation-sdk-1.2.0.2/jars/classes.jar!/META-INF/mint-android-sdk_release.kotlin_module: Module was compiled with an incompatible versio n of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.0. Ran lint on variant debug: 8 issues found Ran lint on variant release: 8 issues found Wrote HTML report to file:///F:/MyCode/AndroidStudio/UnityXiaoMiAdsDemo/launcher/build/reports/lint-results.html Wrote XML report to file:///F:/MyCode/AndroidStudio/UnityXiaoMiAdsDemo/launcher/build/reports/lint-results.xml > Task :unityLibrary:lint Ran lint on variant debug: 6 issues found Ran lint on variant release: 6 issues found Wrote HTML report to file:///F:/MyCode/AndroidStudio/UnityXiaoMiAdsDemo/unityLibrary/build/reports/lint-results.html Wrote XML report to file:///F:/MyCode/AndroidStudio/UnityXiaoMiAdsDemo/unityLibrary/build/reports/lint-results.xml FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':launcher:mergeDexDebug'. > A failure occurred while executing com.android.build.gradle.internal.tasks.DexMergingTaskDelegate > There was a failure while executing work items > A failure occurred while executing com.android.build.gradle.internal.tasks.DexMergingWorkAction > com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: The number of method references in a .dex file cannot exceed 64K. Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html * Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 44s 118 actionable tasks: 31 executed, 87 up-to-date F:\MyCode\AndroidStudio\UnityXiaoMiAdsDemo>
前言
一开始我是在AndroidStudio
集成 Mint Mediation广告SDK的,集成这个广告SDK不难,就是在你测试是要注意,这个要FQ才可以获取广告资源,否则是没有服务器相应的。这个我一开始也不知道,花了好久才从以为大佬那听说的。哪个写的文档啊,这个都不说清楚别人怎么接你家平台,吐槽一下,舒服多了!
OK!现在在AndroidStudio
集成完毕后,开始导入Unity作为插件使用了。在Unity导出来Android工程一切都是那么顺利。在我运行demo是又出现了报错,网上找了一下,已经解决了,在运行,有出现报错,继续找,又出现报错。一直这样解决要出现行的报错。我真的想砸电脑了。拖了几天时间终于构建成功了。
这是我用到的一个报错,希望可以帮助大家拜托烦恼,少走弯路!
分析问题
其实在报错日志内已经给我们找解决办法了。
报错第八行Learn how to resolve this issue at https://developer.android.com/tools/building/multidex.html
通过这个链接可以在官方文档内找到解决办法!
Android 5.0 之前版本的 MultiDex 支持
Android 5.0(API 级别 21)之前的平台版本使用 Dalvik 运行时执行应用代码。默认情况下,Dalvik 将应用限制为每个 APK 只能使用一个 classes.dex 字节码文件。为了绕过这一限制,您可以向模块级 build.gradle 文件中添加 MultiDex 库:
dependencies { def multidex_version = "2.0.1" implementation "androidx.multidex:multidex:$multidex_version" }
如需查看此库的当前版本,请参阅版本页面中有关 MultiDex 的信息。
如果您使用的不是 AndroidX,请改为添加以下已弃用的支持库依赖项:
dependencies { implementation 'com.android.support:multidex:1.0.3' }
Android 5.0 及更高版本的 MultiDex 支持
Android 5.0(API 级别 21)及更高版本使用名为 ART 的运行时,它本身支持从 APK 文件加载多个 DEX 文件。ART 在应用安装时执行预编译,这会扫描查找 classesN.dex 文件,并将它们编译成单个 .oat 文件,以供 Android 设备执行。因此,如果您的 minSdkVersion 为 21 或更高版本,系统会默认启用 MultiDex,并且您不需要 MultiDex 库。
我的解决方式
在我的AndroidStudio build.Gradle
文件内 minSdkVersion 19
。只需要19给成21即可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架