You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开启minifyEnabled true后执行./gradlew assembleRelease构建失败求助

Android Release构建失败(minifyEnabled=true时)

当在android/app/build.gradle中设置minifyEnabled true并执行./gradlew assembleRelease命令时,构建失败,新项目与已有项目均出现该问题。

相关配置

android/app/build.gradle中的buildTypes配置:

buildTypes {
    debug {
        signingConfig signingConfigs.debug
    }
    release {
        signingConfig signingConfigs.release
        minifyEnabled true 
        shrinkResources true
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
    }
}

报错信息

ERROR:/Users/mesutaltas/.gradle/caches/transforms-3/a334453207e8f257bd8e5065fd1e9287/transformed/jetified-kotlin-reflect-1.8.10.jar: R8: Type kotlin.reflect.jvm.internal.impl.serialization.deserialization.builtins.BuiltInsResourceLoader is defined multiple times: /Users/mesutaltas/.gradle/caches/transforms-3/a334453207e8f257bd8e5065fd1e9287/transformed/jetified-kotlin-reflect-1.8.10.jar:kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class, /Users/mesutaltas/.gradle/caches/transforms-3/a334453207e8f257bd8e5065fd1e9287/transformed/jetified-kotlin-reflect-1.8.10.jar:META-INF/versions/9/kotlin/reflect/jvm/internal/impl/serialization/deserialization/builtins/BuiltInsResourceLoader.class
w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions


解决方法

这个问题源于kotlin-reflect jar包中存在针对不同JDK版本的重复类文件,导致R8混淆时冲突。可尝试以下方案:

  1. 升级Kotlin版本
    Kotlin 1.8.20及以上版本已修复该问题。在项目根目录的build.gradle中修改插件版本:

    buildscript {
        ext.kotlin_version = "1.8.20" // 或更高稳定版本
        dependencies {
            classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        }
    }
    
  2. 排除重复类文件
    若暂时无法升级,在app模块的build.gradle中配置打包时排除重复路径:

    android {
        packagingOptions {
            exclude 'META-INF/versions/**/*.class'
        }
    }
    
  3. 清理Gradle缓存
    清除缓存避免损坏的jar包影响构建:

    ./gradlew clean
    rm -rf ~/.gradle/caches
    

    随后重新执行构建:

    ./gradlew assembleRelease
    
  4. 临时禁用Kotlin守护进程
    针对多守护进程的提示,构建时添加参数禁用:

    ./gradlew assembleRelease --no-daemon
    

内容的提问来源于stack exchange,提问作者Recep Altaş

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 07:23:28