uni-app 打基座包报错:Execution failed for task ':app:mergeExtDexRelease'

uni-app 打基座包报错:Execution failed for task ‘:app:mergeExtDexRelease’

打基座包的时候出了上面的bug , 是打app 的基座包 求大佬~

  • What went wrong: Execution failed for task ‘:app:mergeExtDexRelease’.
    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: Type com.fk.simple.BuildConfig is defined multiple times: [PackagePath]/app/build/intermediates/external_file_lib_dex_archives/release/30_classes.jar:classes.dex, [PackagePath]/app/build/intermediates/external_file_lib_dex_archives/release/31_classes.jar:classes.dex Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.

  • Try:
    Run with --debug option to get more log output. Run with --scan to get full insights.

  • Exception is: org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:mergeExtDexRelease’. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:142) at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:282) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:140) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:128) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77) at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:57) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55) at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52) at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)


更多关于uni-app 打基座包报错:Execution failed for task ':app:mergeExtDexRelease'的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app 打基座包报错:Execution failed for task ':app:mergeExtDexRelease'的实战教程也可以访问 https://www.itying.com/category-93-b0.html


在使用 Uni-App 打包 Android 应用时,遇到 Execution failed for task ':app:mergeExtDexRelease' 错误,通常是由于 Dex 文件合并过程中出现问题。以下是一些可能的解决方案:

1. 增加 Dex 文件限制

默认情况下,Android 应用的 Dex 文件数量是有限制的。可以通过在 build.gradle 文件中增加以下配置来解除限制:

android {
    ...
    defaultConfig {
        ...
        multiDexEnabled true
    }
    ...
}

同时,在 dependencies 中添加 multidex 依赖:

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
}

2. 清理项目

有时候缓存或临时文件可能导致构建失败。可以尝试清理项目:

  • 在项目根目录下运行以下命令:
    ./gradlew clean
    
  • 或者在 Android Studio 中选择 Build -> Clean Project

3. 检查依赖冲突

依赖冲突也可能导致 Dex 文件合并失败。可以使用以下命令检查依赖冲突:

./gradlew app:dependencies

如果发现冲突,可以尝试排除或更新相关依赖。

4. 增加内存

Dex 文件合并过程可能会消耗大量内存。可以尝试增加 Gradle 的堆内存限制:

gradle.properties 文件中增加以下配置:

org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8

5. 更新 Gradle 和插件版本

确保你使用的是最新版本的 Gradle 和 Android Gradle 插件。可以在 build.gradle 文件中检查并更新:

buildscript {
    ext.kotlin_version = '1.5.21'
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:7.0.0' // 更新到最新版本
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

6. 检查 ProGuard/R8 配置

如果你启用了代码混淆(ProGuard 或 R8),检查 proguard-rules.pro 文件中是否有错误的配置,或者尝试禁用混淆进行测试。

7. 查看详细日志

如果以上方法都无效,可以查看详细的构建日志以获取更多信息。在终端中运行以下命令:

./gradlew assembleRelease --stacktrace --info --debug

这将输出详细的日志信息,帮助你定位问题。

8. 使用 --no-daemon 选项

有时候 Gradle 守护进程可能会导致问题。可以尝试禁用守护进程:

./gradlew assembleRelease --no-daemon

9. 检查 NDK 配置

如果你在项目中使用 NDK,确保 NDK 的版本与 Gradle 和其他工具兼容。可以在 local.properties 文件中指定 NDK 路径:

ndk.dir=/path/to/your/ndk

10. 禁用 Instant Run

如果你使用的是 Android Studio,尝试禁用 Instant Run:

  • 进入 File -> Settings -> Build, Execution, Deployment -> Instant Run
  • 取消勾选 Enable Instant Run

11. 检查 Uni-App SDK 版本

确保你使用的是最新版本的 Uni-App SDK。如果不是,尝试更新 Uni-App SDK 到最新版本。

12. 重新生成项目

如果以上方法都无效,可以尝试重新生成 Uni-App 项目:

npm run build:android
回到顶部