You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行npm run android失败,报错Could not determine java version from ‘10’

解决npm run android报错:Could not determine java version from ‘10’

我来帮你搞定这个问题,这个报错我之前处理过好几次,核心原因其实很清晰:你用的Gradle 4.6不支持Java 10。Gradle 4.6的官方兼容范围是Java 5到Java 9,当它遇到Java 10的版本号格式时,就会无法识别,抛出这个错误。

结合你的环境(没装Android Studio但配置了Gradle、Java和Genymotion),给你两个可行的解决方案,你可以根据自己的情况选择:

方案一:降级Java版本到Java 9或更低(推荐)

因为你的Gradle版本固定是4.6,降级Java是最稳妥的方式,而且Java 8是长期支持的稳定版本,适配绝大多数旧版Android构建场景:

  • 卸载当前的Java 10,安装Java 8或者Java 9(优先选Java 8)
  • 重新配置JAVA_HOME环境变量,指向新安装的Java根目录
  • 验证配置是否生效:打开终端输入java -version,确认显示的是你安装的新版本;再输入echo $JAVA_HOME(Linux/Mac)或者echo %JAVA_HOME%(Windows),确认路径和Java安装目录一致
  • 做完这些后,重新运行npm run android应该就能正常构建了

方案二:升级Gradle到支持Java 10的版本

如果你不想降级Java,可以把Gradle升级到4.7及以上版本(Gradle 4.7开始正式支持Java 10),步骤如下:

  1. 找到你的React Native项目里的android/build.gradle文件,修改dependencies块中的Gradle插件版本,确保它和升级后的Gradle版本兼容,比如:
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1' // 这个版本适配Gradle 4.7+
        // 其他依赖项保持不变
    }
    
  2. 打开gradle/wrapper/gradle-wrapper.properties文件,修改distributionUrl指向Gradle 4.7的安装包:
    distributionUrl=https\://services.gradle.org/distributions/gradle-4.7-all.zip
    
  3. 删除项目android目录下的.gradle文件夹,清理旧的构建缓存
  4. 最后重新运行npm run android尝试构建

额外注意点

  • 虽然你没装Android Studio,但要确保ANDROID_HOME环境变量已经正确配置,npm run android需要依赖Android SDK里的构建工具才能完成编译
  • Genymotion路径配置没问题的话,只要构建成功,应该会自动连接到你的模拟器

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

火山引擎 最新活动