ARCore Raw Depth代码样例运行失败:Gradle与Java适配问题求助
问题:ARCore Raw Depth项目part0_work模块构建报错
我在使用ARCore Raw Depth代码实验室项目,未修改任何代码,运行其中的part0_work模块(仅访问相机的空应用)。最初遇到Java版本与Gradle版本不匹配的错误,于是将Gradle升级至7.2(我的Java版本为17),现在构建无问题,但运行part0_work时出现以下错误:
FAILURE: Build completed with 2 failures. 1: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':part0_work:processDebugManifest'. > Unable to make field private final java.lang.String java.io.File.path accessible: module java.base does not "opens java.io" to unnamed module @14bc7502 * Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights. ============================================================================== 2: Task failed with an exception. ----------- * What went wrong: Execution failed for task ':part0_work:compileDebugJavaWithJavac'. > Failed to calculate the value of task ':part0_work:compileDebugJavaWithJavac' property 'options.generatedSourceOutputDirectory'. > Querying the mapped value of map(java.io.File property(org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, C:\Users\dparakal\Documents\StudioProjects\arcore-rawdepthapi\part0_work\build\generated\ap_generated_sources\debug\out)) org.gradle.api.internal.file.DefaultFilePropertyFactory$ToFileTransformer@259aa838) before task ':part0_work:compileDebugJavaWithJavac' has completed is not supported * Try: Run with --info or --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 ':part0_work:compileDebugJavaWithJavac'. at org.gradle.api.internal.tasks.properties.DefaultTaskProperties.resolve(DefaultTaskProperties.java:83) at org.gradle.execution.plan.LocalTaskNode.resolveMutations(LocalTaskNode.java:200) at org.gradle.execution.plan.DefaultExecutionPlan.getResolvedMutationInfo(DefaultExecutionPlan.java:665) at org.gradle.execution.plan.DefaultExecutionPlan.selectNext(DefaultExecutionPlan.java:577) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$executeNextNode$1(DefaultPlanExecutor.java:166) at org.gradle.internal.resources.DefaultResourceLockCoordinationService.withStateLock(DefaultResourceLockCoordinationService.java:45) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:155) at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61) at java.base/java.lang.Thread.run(Thread.java:840) Caused by: org.gradle.api.internal.provider.AbstractProperty$PropertyQueryException: Failed to calculate the value of task ':part0_work:compileDebugJavaWithJavac' property 'options.generatedSourceOutputDirectory'. at org.gradle.api.internal.provider.AbstractProperty.finalizeNow(AbstractProperty.java:239) at org.gradle.api.internal.provider.AbstractProperty.beforeRead(AbstractProperty.java:230) at org.gradle.api.internal.provider.AbstractProperty.calculateOwnValueNoProducer(AbstractProperty.java:120) at org.gradle.api.internal.file.DefaultFilePropertyFactory$AbstractFileVar.access$100(DefaultFilePropertyFactory.java:180) at org.gradle.api.internal.file.DefaultFilePropertyFactory$AbstractFileVar$2.calculateOwnValue(DefaultFilePropertyFactory.java:263) at org.gradle.api.internal.provider.AbstractMinimalProvider.getOrNull(AbstractMinimalProvider.java:93) at org.gradle.api.internal.tasks.properties.FileParameterUtils.resolveOutputFilePropertySpecs(FileParameterUtils.java:115) at org.gradle.api.internal.tasks.properties.OutputUnpacker.visitOutputFileProperty(OutputUnpacker.java:67) at org.gradle.api.internal.tasks.properties.CompositePropertyVisitor.visitOutputFileProperty(CompositePropertyVisitor.java:67) at org.gradle.api.internal.tasks.properties.annotations.AbstractOutputPropertyAnnotationHandler.visitPropertyValue(AbstractOutputPropertyAnnotationHandler.java:50) at org.gradle.api.internal.tasks.properties.bean.AbstractNestedRuntimeBeanNode.visitProperties(AbstractNestedRuntimeBeanNode.java:56) at org.gradle.api.internal.tasks.properties.bean.NestedRuntimeBeanNode.visitNode(NestedRuntimeBeanNode.java:41) at org.gradle.api.internal.tasks.properties.DefaultPropertyWalker.visitProperties(DefaultPropertyWalker.java:41) at org.gradle.api.internal.tasks.TaskPropertyUtils.visitProperties(TaskPropertyUtils.java:44) at org.gradle.api.internal.tasks.properties.DefaultTaskProperties.resolve(DefaultTaskProperties.java:74) ... 27 more Caused by: org.gradle.api.InvalidUserCodeException: Querying the mapped value of map(java.io.File property(org.gradle.api.file.Directory, fixed(class org.gradle.api.internal.file.DefaultFilePropertyFactory$FixedDirectory, C:\Users\dparakal\Documents\StudioProjects\arcore-rawdepthapi\part0_work\build\generated\ap_generated_sources\debug\out)) org.gradle.api.internal.file.DefaultFilePropertyFactory$ToFileTransformer@259aa838) before task ':part0_work:compileDebugJavaWithJavac' has completed is not supported at org.gradle.api.internal.provider.TransformBackedProvider.lambda$beforeRead$0(TransformBackedProvider.java:84) at org.gradle.api.internal.provider.ValueSupplier$TaskProducer.visitContentProducerTasks(ValueSupplier.java:136) at org.gradle.api.internal.provider.TransformBackedProvider.beforeRead(TransformBackedProvider.java:81) at org.gradle.api.internal.provider.TransformBackedProvider.calculateOwnValue(TransformBackedProvider.java:63) at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:103) at org.gradle.api.internal.provider.MappingProvider.calculateOwnValue(MappingProvider.java:55) at org.gradle.api.internal.provider.AbstractMinimalProvider.calculateValue(AbstractMinimalProvider.java:103) at org.gradle.api.internal.provider.AbstractMinimalProvider.withFinalValue(AbstractMinimalProvider.java:151) at org.gradle.api.internal.provider.DefaultProperty.finalValue(DefaultProperty.java:133) at org.gradle.api.internal.provider.DefaultProperty.finalValue(DefaultProperty.java:25) at org.gradle.api.internal.provider.AbstractProperty.finalizeNow(AbstractProperty.java:236) ... 27 more Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
我不确定应该降级Java、升级Gradle还是存在其他问题。更新:我尝试过升级Gradle,但没有效果。另外我无法降级Java到13(Gradle 6.1.1对应的Java版本),因为它不是免费版本。
解决方案
1. 修复processDebugManifest的模块访问错误
该错误源于Java 9+的模块系统限制,需在Gradle配置中添加JVM参数解除限制:
- 打开项目根目录的
gradle.properties文件 - 添加或更新以下配置:
org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED
若已有org.gradle.jvmargs项,直接追加上述参数即可。
2. 修复compileDebugJavaWithJavac的属性查询错误
此问题多因旧版Android Gradle插件(AGP)与Gradle 7.2不兼容导致,需升级AGP版本:
- 打开项目根目录的项目级
build.gradle文件 - 找到
dependencies块中的classpath 'com.android.tools.build:gradle:xxx' - 将版本替换为与Gradle 7.2兼容的版本(如
7.2.2) - 同步项目后重新执行构建
额外排查步骤
若上述方法无效,可尝试:
- 清理项目缓存:执行命令
gradlew clean(Windows)或./gradlew clean(Mac/Linux) - 检查项目中其他依赖插件版本,逐一更新至兼容Gradle 7.2的版本
内容的提问来源于stack exchange,提问作者Dhatri Parakal
相关产品推荐
相关产品推荐

