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即可。