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

React Native中@react-native-community/datetimepicker编译失败求助

解决React Native 0.73.0构建Android时datetimepicker编译失败问题

问题背景

使用React Native CLI 0.73.0开发,依赖如下:

"@react-native-community/datetimepicker": "^7.6.2",
"react": "18.2.0",
"react-native": "0.73.0",
"react-native-modal-datetime-picker": "^17.1.0",

执行npm run android时出现Task :@react-native-community_datetimepicker:compileDebugJavaWithJavac FAILED错误,核心问题包括:

  • 无法解析配置:@react-native-community_datetimepicker:androidJdkImage的文件,JdkImageTransform调用jlink工具出错
  • 提示使用了已废弃的Gradle特性,与Gradle 9.0不兼容

解决方案

1. 锁定datetimepicker兼容版本

@react-native-community/datetimepicker@7.6.2与RN 0.73.0存在Gradle配置冲突,将其降级到适配版本:
修改package.json中的依赖:

"@react-native-community/datetimepicker": "7.5.0",

执行命令重新安装依赖:

npm install

2. 统一Gradle与JDK版本配置

RN 0.73.0要求使用JDK 17和Gradle 8.x,确保项目配置统一:

  • 打开android/gradle/wrapper/gradle-wrapper.properties,确认Gradle版本:
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0-all.zip
  • 打开android/build.gradle,在subprojects块中添加统一的Java/Kotlin版本配置:
subprojects {
    afterEvaluate { project ->
        if (project.hasProperty('android')) {
            android {
                compileOptions {
                    sourceCompatibility JavaVersion.VERSION_17
                    targetCompatibility JavaVersion.VERSION_17
                }
                kotlinOptions {
                    jvmTarget = '17'
                }
            }
        }
    }
}

3. 清理构建缓存并重新构建

执行以下命令清理缓存:

cd android && ./gradlew clean
cd .. && npm run android

原因说明

  • datetimepicker 7.6.2引入的Gradle配置(如JDK Image特性)与RN 0.73.0默认的Gradle 8.x不兼容,降级到7.5.0可规避该问题
  • 统一Java/Kotlin编译版本为17,确保所有模块的编译环境一致,解决JdkImageTransform的调用错误
  • 清理缓存可消除旧构建残留的配置冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 01:35:21