React Native AsyncStorage安卓编译失败问题求助
React Native AsyncStorage安卓构建失败解决方案
问题复现
在最新版React Native项目中使用@react-native-async-storage/async-storage时,安卓构建失败,卸载该包后构建恢复正常,报错核心信息如下:
FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':react-native-async-storage_async-storage:compileDebugJavaWithJavac'. > Could not resolve all files for configuration ':react-native-async-storage_async-storage:androidJdkImage'. > Failed to transform core-for-system-modules.jar to match attributes {artifactType=_internal_android_jdk_image, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}. > Execution failed for JdkImageTransform: C:\Users\sinha\AppData\Local\Android\Sdk\platforms\android-34\core-for-system-modules.jar. > Error while executing process C:\Program Files\Java\jdk-21\bin\jlink.exe with arguments {--module-path C:\Users\sinha\.gradle\caches\transforms-3\39249073bb6a3501d7fccc77a4a99ba2\transformed\output\temp\jmod --add-modules java.base --output C:\Users\sinha\.gradle\caches\transforms-3\39249073bb6a3501d7fccc77a4a99ba2\transformed\output\jdkImage --disable-plugin system-modules}
解决方法
方法1:降级JDK到17
当前部分React Native第三方库(包括AsyncStorage)对JDK 21的适配还不完善,降级到JDK 17可直接解决:
- 安装OpenJDK 17或Oracle JDK 17
- 在项目的
android/gradle.properties文件中添加或修改JDK路径:org.gradle.java.home=/你的JDK17安装路径 - 或者通过Android Studio的「File > Project Structure > SDK Location」设置JDK为17
方法2:升级AsyncStorage到最新兼容版本
旧版本AsyncStorage未适配JDK 21和Android 34,升级到最新版即可:
# npm npm install @react-native-async-storage/async-storage@latest # yarn yarn add @react-native-async-storage/async-storage@latest
升级后执行清理缓存再构建:
cd android && ./gradlew clean && ./gradlew assembleDebug
方法3:调整Gradle配置适配JDK 21
如果坚持使用JDK 21,可调整项目Gradle配置:
- 在
android/build.gradle中确保gradle插件版本和compileSdkVersion与最新版React Native匹配(通常compileSdkVersion为33或34,gradle插件版本为7.4+) - 在
android/app/build.gradle中添加Java版本兼容配置:android { compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } } - 在
gradle/wrapper/gradle-wrapper.properties中升级Gradle到7.6及以上版本:distributionUrl=https\://services.gradle.org/distributions/gradle-7.6-all.zip
内容的提问来源于stack exchange,提问作者Ayush Sinha
相关产品推荐
相关产品推荐

