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
相关产品推荐
相关产品推荐

