React Native项目因Java 10无法运行,求Mac下Java降级解决方法
嘿,这个问题我熟!当时React Native的Android构建工具还没跟上JDK 10的节奏,所以才会报这个版本识别错误。咱们只要装个兼容的旧版本JDK(首推JDK 8,稳定又适配),然后切换过去就行,我给你一步步讲:
第一步:安装JDK 8(兼容React Native的版本)
Mac上装JDK有两种简单方式,选你顺手的来:
- 用Homebrew安装(推荐,新手友好)
如果还没装Homebrew,先在终端里跑这个命令装包管理器:
装完Homebrew后,直接装JDK 8:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"brew install adoptopenjdk/openjdk/adoptopenjdk8 - 手动下载安装
去Oracle的Java Archive页面找JDK 8的dmg安装包(注意选对应Mac的版本),下载后双击安装,一路点下一步就行。
第二步:切换系统默认Java版本到JDK 8
这里推荐用jenv工具来管理多个Java版本,切换起来超方便:
- 先装jenv:
brew install jenv - 把jenv加到shell配置里(如果你用的是默认的zsh,就改
~/.zshrc;用bash的话改~/.bash_profile):
然后重启终端,或者跑这个命令让配置立刻生效:echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(jenv init -)"' >> ~/.zshrcsource ~/.zshrc - 把刚装的JDK 8加到jenv的管理列表里:
先找到JDK 8的安装路径,一般是这个(如果是Oracle的JDK,路径里的文件名会是jdk1.8.0_xxx.jdk):
然后跑命令添加:/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Homejenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home - 设置全局默认用JDK 8:
要是只想在当前项目里用JDK 8,就把命令换成jenv global 1.8jenv local 1.8(会在项目目录生成.java-version文件,自动切换)。
不用jenv的替代方案
如果不想装额外工具,直接修改环境变量也能行:
在~/.zshrc或~/.bash_profile里加这两行:
export JAVA_HOME=/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH
然后跑source ~/.zshrc生效就行。
第三步:验证版本切换成功
在终端里跑这个命令:
java -version
输出应该是类似这样的,说明已经切换到JDK 8了:
openjdk version "1.8.0_382"
OpenJDK Runtime Environment (AdoptOpenJDK)(build 1.8.0_382-b05)
OpenJDK 64-Bit Server VM (AdoptOpenJDK)(build 25.382-b05, mixed mode)
第四步:重新运行React Native项目
回到你的项目目录,先清理之前的构建缓存,避免残留问题:
cd 你的项目文件夹路径 ./gradlew clean
然后再跑启动命令:
react-native run-android
这次应该就能正常构建运行了!
内容的提问来源于stack exchange,提问作者Abhishek D
相关产品推荐
相关产品推荐

