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

Gradle构建APK失败:java.io.File.path权限及编译任务异常

Android APK构建失败问题

构建错误日志

选项 'android.useDeprecatedNdk' 已废弃。

正在项目C:\santrope-core-client-master\apk中执行任务: [:app:assembleBarvikhaDebug, :app:assembleBarvikhaDebugUnitTest, :app:assembleBarvikhaDebugAndroidTest]

启动Gradle守护进程...
Gradle守护进程已启动,耗时3秒656毫秒

> 配置项目 :app
警告: 选项 'android.useDeprecatedNdk' 已废弃。
当前默认值为'false'。
该选项已从当前版本的Android Gradle插件中移除。
不再支持NdkCompile
Crashlytics无法找到依赖的NDK构建任务。您可能需要为generateCrashlyticsSymbolFileSantropeRelease手动强制设置任务依赖
Crashlytics无法找到依赖的NDK构建任务。您可能需要为generateCrashlyticsSymbolFileBarvikhaRelease手动强制设置任务依赖

> 任务 :app:compileLibs
'编译库'

> 任务 :app:copyLibBarvikha
> 任务 :app:preBuild
> 任务 :app:preBarvikhaDebugBuild
> 任务 :app:compileBarvikhaDebugAidl 无源码
> 任务 :app:compileBarvikhaDebugRenderscript 无源码
> 任务 :app:generateBarvikhaDebugBuildConfig
> 任务 :app:javaPreCompileBarvikhaDebug 已是最新
> 任务 :app:generateBarvikhaDebugResValues 已是最新
> 任务 :app:generateBarvikhaDebugResources 已是最新
> 任务 :app:injectCrashlyticsMappingFileIdBarvikhaDebug 已是最新
> 任务 :app:processBarvikhaDebugGoogleServices 已是最新
> 任务 :app:mergeBarvikhaDebugResources 已是最新
> 任务 :app:createBarvikhaDebugCompatibleScreenManifests
> 任务 :app:extractDeepLinksBarvikhaDebug 已是最新
> 任务 :app:processBarvikhaDebugManifest 失败

构建失败: 共2个失败任务。

1: 任务执行抛出异常。
-----------
* 问题所在:
任务 ':app:processBarvikhaDebugManifest' 执行失败。
> 无法访问私有最终字段 java.lang.String java.io.File.path: 模块java.base未向未命名模块@195e49d6开放"java.io"

* 建议:
> 使用--stacktrace选项获取堆栈跟踪。
> 使用--info或--debug选项获取更多日志输出。
> 使用--scan选项获取完整分析信息。
==============================================================================

2: 任务执行抛出异常。
-----------
* 问题所在:
任务 ':app:compileBarvikhaDebugJavaWithJavac' 执行失败。
> 无法计算任务 ':app:compileBarvikhaDebugJavaWithJavac' 的属性'options.generatedSourceOutputDirectory'的值。
   > 在任务 ':app:compileBarvikhaDebugJavaWithJavac' 完成前查询指定映射值不被支持

* 建议:
> 使用--stacktrace选项获取堆栈跟踪。
> 使用--info或--debug选项获取更多日志输出。
> 使用--scan选项获取完整分析信息。
==============================================================================

本次构建使用了已废弃的Gradle特性,与Gradle 8.0不兼容。

您可以使用'--warning-mode all'显示单个废弃警告,确定其来源。

构建失败,耗时34秒
11个可执行任务: 5个已执行,6个已是最新

最终错误: 无法访问私有最终字段 java.lang.String java.io.File.path: 模块java.base未向未命名模块@195e49d开放"java.io"

解决方案

1. 修复Java模块访问权限限制

在项目根目录的gradle.properties文件中添加JVM参数,开放模块访问权限:

org.gradle.jvmargs=--add-opens java.base/java.io=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED

2. 移除废弃的NDK配置

删除gradle.properties中的android.useDeprecatedNdk配置项,在app/build.gradle中指定当前可用的NDK版本:

android {
    ndkVersion "25.2.9519653" // 根据项目需求选择兼容的NDK版本
}

3. 手动绑定Crashlytics与NDK构建任务

在app/build.gradle中添加任务依赖,确保Crashlytics能找到NDK构建任务:

tasks.whenTaskAdded { task ->
    if (task.name == 'generateCrashlyticsSymbolFileBarvikhaRelease') {
        task.dependsOn ':app:ndkBuild' // 替换为项目实际的NDK构建任务名称
    }
    if (task.name == 'generateCrashlyticsSymbolFileSantropeRelease') {
        task.dependsOn ':app:ndkBuild'
    }
}

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

根据当前AGP版本匹配对应的Gradle版本,避免兼容性问题:

  • 修改项目根目录build.gradle中的AGP版本:
buildscript {
    dependencies {
        classpath 'com.android.tools.build:gradle:7.4.2' // 与Gradle 7.5兼容
    }
}
  • 修改gradle/wrapper/gradle-wrapper.properties中的Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 18:13:09