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

Unity导出Android项目构建提示无错误但实际失败::unityLibrary:compileDebugJavaWithJavac任务执行异常

解决Unity Android构建失败(:unityLibrary:compileDebugJavaWithJavac任务错误)

根据你提供的构建日志,核心问题是任务执行顺序冲突加上Gradle版本兼容性问题,以下是分步解决方法:

1. 对齐Gradle与Android Gradle插件(AGP)版本

你的项目当前使用Gradle 7.0.1,但存在与Gradle 8.0不兼容的弃用功能,首先需要确保AGP和Gradle版本匹配:

  • 打开项目根目录的build.gradle(项目级),找到dependencies块中的com.android.tools.build:gradle,将其版本调整为与Gradle 7.0.1兼容的稳定版,比如7.0.4:
    buildscript {
        repositories {
            google()
            mavenCentral()
        }
        dependencies {
            classpath 'com.android.tools.build:gradle:7.0.4'
        }
    }
    
  • 同步项目后,尝试重新构建。

2. 修复任务依赖顺序

错误提示显示在compileDebugJavaWithJavac完成前就查询了它的generatedSourceOutputDirectory属性,这是任务依赖顺序错误导致的。你可以在unityLibrary模块的build.gradle中添加明确的依赖约束:

// 在unityLibrary的build.gradle末尾添加
tasks.named('compileDebugJavaWithJavac') {
    // 确保生成源码的任务先于编译任务执行
    dependsOn tasks.named('generateDebugSources')
}

如果是第三方插件(比如Unity相关的构建插件)引发的问题,建议检查插件版本,升级到适配当前Gradle版本的最新版。

3. 清理弃用的R8配置

日志中提示android.enableR8已被弃用,打开项目根目录的gradle.properties,删除或注释掉以下行:

# android.enableR8=false

新版本的AGP已经强制启用R8,不需要手动禁用该配置。

问题原因说明

这个错误本质是Gradle增量构建机制的限制:某个任务试图提前访问compileDebugJavaWithJavac任务的动态属性值,而该属性只有在任务执行后才会生成有效映射。加上项目使用了Gradle 8.0不兼容的弃用功能,进一步触发了版本冲突问题。

内容的提问来源于stack exchange,提问作者Omar Mehmood

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 16:38:11