【问题标题】:Cordova is running the wrong Java version. How do I get Cordova to run a specific Java version?Cordova 正在运行错误的 Java 版本。如何让 Cordova 运行特定的 Java 版本?
【发布时间】:2014-10-10 21:17:31
【问题描述】:
[javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release

error: strings in switch are not supported in -source 1.5
    [javac]    switch (xmlData[i][1]) {
    [javac]           ^
    [javac]   (use -source 7 or higher to enable strings in switch)

在使用 Cordova for Android 编译 APK 时,我收到警告和错误,提示我正在运行 Java 1.5。我不能在 switch 语句中使用字符串。 (编译过程出错)

我的系统是 64 位 Windows 7。我的 Cordova 版本是 3.5。我正在使用 git-scm。 (http://git-scm.com/)

  • 我正在运行这个命令:cordova run android --release
  • 我的 Java 环境变量将 C:\Program Files\Java\jdk1.8.0_20 列为 Java 目录。
  • 我的路径环境变量将 Java 路径设置为列表中的第一项。
  • 除了我刚刚从 Oracle 网站重新安装的以外,所有 Java 补丁和版本都已卸载。
  • 我重新启动了计算机。
  • java -version 给我java version "1.8.0_20"
  • javac -version 给我javac 1.8.0_20
  • 我的所有目标都是=android-19=debug=release
  • android:minSdkVersion 始终设置为“14”,无处不在。
  • android:targetSdkVersion 始终设置为“19”,无处不在。

如何强制 Cordova 运行 Java 8?

【问题讨论】:

    标签: java android cordova


    【解决方案1】:

    要修复命令行构建,请将这些行(或设置适当的值,如果已经存在)添加到您的 ant build.xml 属性文件(例如,如果使用 Android SDK,它在 ${sdk.dir}/tools/ant/build.xml 中):

    <property name="java.target" value="1.7" />
    <property name="java.source" value="1.7" />
    

    【讨论】:

    • 我只是想补充一点,您的插件的项目库必须使用 Ant,而不是 Maven。否则编译时会忽略这个答案!
    【解决方案2】:
    1. 右键单击您的项目(包资源管理器)并选择“Android 工具 -> 修复项目属性
    2. 右击你的项目并选择“Properties -> Java Compiler”,勾选“Enable project specific settings”并选择1.7 or 1.8 来自“编译器合规性设置”选择框。
    3. 然后重建您的项目(Project -> Clean

    【讨论】:

    • 你能快速尝试设置 JDK 1.7 而不是 1.8 吗?试试看?
    • 好吧,事情编译好了。所以,是的,我正确设置了蚂蚁路径。我明天试试 JDK 1.7 看看有没有帮助。
    • 好的。我运行了 JDK 1.7,它没有给出 1.5 警告或错误。然后我安装了 1.8 并且它再次发生。知道为什么会这样吗?最好同时使用最新的 JDK 并让 Cordova 编译到正确的版本...
    • 这意味着有些东西只与 JDK 1.7 兼容。尝试检查安装的版本与JDK 1.8的兼容性;检查您拥有的 ant 或 node 或 git 和 cordova 版本。
    • 嗯,node 和 git 最近更新了。科尔多瓦是 3.5。我正在使用 git-scm (2014-09-30),但通过 Google 找不到任何问题。 Ant 可能是问题所在 (Apache Ant(TM) version 1.8.2 compiled on December 20 2010) 但我似乎记得这段文字是谎言。
    【解决方案3】:

    我创建了 2 个插件,因为我遇到了同样的问题。
    这个想法的学分转到this answer

    您无法从 npm 存储库中获取这些插件,因此请使用 README.md 中列出的命令

    它对我有用,如果它不适合你,请使用 github 存储库上的问题和拉取请求功能。

    【讨论】:

    • 请不要发帖duplicate answers。相反,请针对特定问题调整您的每个答案。如果您有必要的声誉积分,您可以在适当的情况下将问题作为重复的flagvote-to-close
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2015-01-09
    • 2013-03-29
    • 1970-01-01
    相关资源
    最近更新 更多