多模块项目中binding_classes.json复制失败问题求助
错误含义
这是Android构建流程中Data Binding跨模块依赖的文件复制失败:media模块构建生成的Data Binding基础类日志文件com.example.media-binding_classes.json,在复制到依赖它的authorized_zone模块对应目录时出现异常。
随机触发的原因通常包括:
- Gradle构建缓存的脏数据冲突
- Windows系统下的文件锁(进程占用源/目标文件)
- 多模块并行构建时的资源竞争
- 各模块Data Binding配置或版本不一致
彻底解决方法
1. 清理缓存并禁用构建缓存
- 执行命令强制无缓存构建:
# Windows系统 gradlew.bat clean build --no-build-cache - 长期禁用构建缓存:在项目根目录
gradle.properties中添加:
或在Android Studio设置中取消android.enableBuildCache=falseSettings > Build, Execution, Deployment > Build Tools > Gradle下的Build cache勾选
2. 统一所有模块的Data Binding配置
确保所有启用Data Binding的模块,Module级build.gradle配置完全一致:
android { buildFeatures { dataBinding true // 若使用ViewBinding,同步开启并保持一致 viewBinding true } // 强制统一compileSdk、targetSdk版本 compileSdk 34 defaultConfig { targetSdk 34 } }
3. 解决Windows文件锁问题
- 关闭占用项目文件的进程:杀毒软件实时扫描、OneDrive同步、其他IDE窗口
- 在
gradle.properties中添加优化配置:
前者指定独立的Gradle临时目录,避免系统临时文件锁;后者关闭并行构建,减少资源竞争org.gradle.jvmargs=-Djava.io.tmpdir=C:\Temp\gradle-tmp org.gradle.parallel=false
4. 更新Gradle与AGP版本
将AGP和Gradle升级到官方稳定版本(例如AGP 8.2.0 + Gradle 8.2):
- 根目录
build.gradle:dependencies { classpath 'com.android.tools.build:gradle:8.2.0' } gradle/wrapper/gradle-wrapper.properties:distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip
5. 手动清理残留缓存
若以上方法无效,直接删除以下目录后重新构建:
- 项目根目录的
.gradle文件夹 - 所有模块的
build文件夹 - Android Studio缓存目录:
C:\Users\<你的用户名>\.AndroidStudio<版本>\system\caches
内容的提问来源于stack exchange,提问作者RusArtM
相关产品推荐
相关产品推荐

