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

Unity 2018.4.33f1升级Gradle至3.6.0后构建AAB报文件不存在错误,不愿回退Gradle

问题根因

你遇到的gradleOut.aab does not exist报错,本质是Unity 2018.4.x 内置的Android构建后处理逻辑,和升级后的Android Gradle Plugin(AGP)3.6.0的产物输出规则不匹配。
APK构建走assembleRelease任务流,产物输出路径完全符合Unity内置脚本的硬编码预期,所以APK构建全程无报错;但AAB构建走bundleRelease任务流,AGP 3.6.0调整了该任务的输出路径规则,再加上部分场景下任务会被静默拦截直接中断、不生成目标产物,就会导致Unity后处理脚本去旧路径找文件时抛出不存在的异常。

无需回退版本的解决步骤
  • 修改自定义Base Gradle模板
    打开Unity的Project Settings > Player > Android > Publishing Settings > Build,勾选Custom Base Gradle Template,项目会自动生成Assets/Plugins/Android/baseProjectTemplate.gradle,在文件末尾追加路径强制对齐配置,让AAB产物输出到Unity预期的固定位置:
    project.afterEvaluate {
        if (project.plugins.hasPlugin('com.android.application')) {
            android {
                // 强制指定AAB文件名,和Unity脚本预期保持一致
                bundle {
                    release {
                        outputFileName = "gradleOut.aab"
                    }
                }
            }
            // 将bundleRelease任务的输出目录,设置为Unity硬编码读取的路径
            tasks.named('bundleRelease') {
                destinationDirectory.set(file("${project.buildDir}/outputs/bundle/release"))
            }
        }
    }
    
  • 关闭AGP的AAB构建静默拦截
    AGP 3.6.0默认开启未映射资源的压缩校验,如果项目包含ARCore依赖的模型、纹理类资源,会直接在bundleRelease任务执行时静默中断,既不弹出明显的编译报错,也不生成目标aab文件。在上述baseProjectTemplate.gradle的android配置块中追加:
    android {
        bundle {
            compression {
                disable {
                    // 排除ARCore常见资源的压缩校验拦截
                    uncompressedAssets.add("**/*.fbx")
                    uncompressedAssets.add("**/*.glb")
                    uncompressedAssets.add("**/*.png")
                }
            }
        }
    }
    
  • 排查JDK版本不匹配的隐式报错
    Unity 2018.4 默认内置JDK8,而AGP 3.6.0 最低兼容要求为JDK11,JDK版本不匹配会直接导致bundleRelease任务执行失败。打开Unity的Preferences > External Tools,将JDK路径替换为兼容2018.4版本的OpenJDK 11(版本号11.0.15),不要使用17及以上的高版本JDK,避免触发类版本校验报错。
  • 临时获取全量构建日志定位真实问题
    Unity Console面板默认不会输出Gradle的全量构建日志,遇到静默中断的场景,可以手动进入项目的Temp/gradleOut目录,执行命令gradlew.bat bundleRelease --stacktrace查看完整的任务中断堆栈,定位具体的构建阻塞点。

注意:需要确保Gradle Wrapper版本为5.6.4,和AGP 3.6.0的兼容要求对齐,不要使用6.0以上的Gradle版本,避免出现构建任务异常、产物路径再次偏移的问题。


内容的提问来源于stack exchange,提问作者Muhammad Abdullah

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.26 06:06:05