com/sencha/core/functional/Action:不支持 major.minor 版本 51.0 和 java 1.8

com/sencha/core/functional/Action : Unsupported major.minor version 51.0 with java 1.8

我不认为这是重复的,因为我一直无法找到适用于 Whosebug 和其他 sites/forums 的解决方案。我在下面列出了我尝试过但没有奏效的所有内容。

我正在尝试 运行 OSX El Capitain 终端中的命令 "sencha app build native",我 运行 出现以下错误。

Sencha Cmd v6.1.3.42
[INF] Using GPL version of Sencha Touch version 2.3.0 from /Users/myuser/Downloads/MyProject_2/touch.
[INF] The implications of using GPL version can be found here (http://www.sencha.com/products/extjs/licensing).
[INF] Processing Build Descriptor : native
[INF] Loading app json manifest...
[INF] Writing output to file /Users/myuser/Downloads/MyProject_2/build/temp/production/MyProject/sencha-compiler/cmd-packages.js
[INF] writing content to /Users/myuser/Downloads/MyProject_2/bootstrap.js
[INF] appending content to /Users/myuser/Downloads/MyProject_2/bootstrap.js
[INF] appending content to /Users/myuser/Downloads/MyProject_2/bootstrap.js
[INF] appending content to /Users/myuser/Downloads/MyProject_2/bootstrap.js
[INF] Appending content to /Users/myuser/Downloads/MyProject_2/bootstrap.json
[WRN] C1014: callParent has no target (me.callParent in Ext.dataview.DataView.onAfterRender) -- /Users/myuser/Downloads/MyProject_2/touch/src/dataview/DataView.js:892
[WRN] C1014: callParent has no target (this.callParent in Ext.Decorator.setDisabled) -- /Users/myuser/Downloads/MyProject_2/touch/src/Decorator.js:157
[WRN] C1014: callParent has no target (this.callParent in Ext.data.ArrayStore.loadData) -- /Users/myuser/Downloads/MyProject_2/touch/src/data/ArrayStore.js:64
[WRN] C1014: callParent has no target (this.callParent in Ext.fx.animation.Wipe.getData) -- /Users/myuser/Downloads/MyProject_2/touch/src/fx/animation/Wipe.js:119:7
[INF] Writing concatenated output to file /Users/myuser/Downloads/MyProject_2/cordova/www/app.js
[INF] merging 0 input resources into /Users/myuser/Downloads/MyProject_2/cordova/www/resources
[INF] merged 0 resources into /Users/myuser/Downloads/MyProject_2/cordova/www/resources
[INF] merging 46 input resources into /Users/myuser/Downloads/MyProject_2/cordova/www
[INF] merged 0 resources into /Users/myuser/Downloads/MyProject_2/cordova/www
[INF] writing content to /Users/myuser/Downloads/MyProject_2/sass/example/bootstrap.js
[INF] appending content to /Users/myuser/Downloads/MyProject_2/sass/example/bootstrap.js
[INF] appending content to /Users/myuser/Downloads/MyProject_2/sass/example/bootstrap.js
[INF] appending content to /Users/myuser/Downloads/MyProject_2/sass/example/bootstrap.js
[INF] appending content to /Users/myuser/Downloads/MyProject_2/sass/example/bootstrap.js
[ERR]
[ERR] BUILD FAILED
[ERR] java.lang.UnsupportedClassVersionError: com/sencha/core/functional/Action : Unsupported major.minor version 51.0
[ERR]   at com.sencha.command.BasePluginCommands$BasePluginCom
[ERR] mand.dispatch(BasePluginCommands.java:260)
[ERR]
[ERR] Total time: 7 seconds
[ERR] The following error occurred while executing this line:
/Users/myuser/Downloads/MyProject_2/.sencha/app/build-impl.xml:285: The following error occurred while executing this line:
/Users/myuser/Downloads/MyProject_2/.sencha/app/sass-impl.xml:310: The following error occurred while executing this line:
/Users/myuser/Downloads/MyProject_2/.sencha/app/sass-impl.xml:316: com.sencha.exceptions.BasicException: com/sencha/core/functional/Action : Unsupported major.minor version 51.0

错误告诉我我的 java 设置有问题,但我不知道是什么。在终端中检查我的版本显示如下。

$ java -版本 java 版本“1.8.0_101” Java(TM) SE 运行时环境(build 1.8.0_101-b13) Java HotSpot(TM) 64 位服务器 VM(内部版本 25.101-b13,混合模式)

通过系统首选项打开 java 显示仅安装了一个 Java 版本,即 1.8,安装路径为“/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java”

运行 '/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java -version' 在终端中也显示版本 1.8

运行 '/usr/bin/java -version' 也给出版本 1.8

我尝试添加这 3 行的变体以尝试解决问题,但它似乎没有任何改变。如您所见,我还尝试更改内存以防万一它可能是内存问题

ANT_OPTS="-Xms1024m -Xmx2048m"
export PATH="/usr/local/bin:$PATH"
export JAVA_HOME="/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java"

我也试过 运行ning 'sencha app build -c' 也给出了同样的错误。

我还尝试将以下内容添加到 sencha.cfg 以查看是否有帮助

cmd.jvm.args=-Xms512m -Xmx2048m

我也尝试从苹果 https://support.apple.com/kb/dl1572 安装此更新,它说它安装了旧版本的 Java 6 运行time

我也试过安装 java sdk 7 和 java sdk 8 看看是否有帮助,运气不好

我还能尝试做些什么来修复与 Sencha 构建相关的错误 "Unsupported major.minor version 51.0"

我终于通过将 JAVA_HOME 变量更改为“/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home”

解决了这个问题

我将以下内容放入 .bashrc 和 .bash_profile 中,确保删除与 java 或 JAVA_HOME 变量相关的任何其他内容。您可以使用 'nano /Users/$USER/.bash_profile' 之类的命令来编辑文件

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home"
export PATH=$JAVA_HOME/bin:$PATH

在终端中输入 'echo $JAVA_HOME' 以确保设置正确的路径。

然后重新启动您的 mac 并再次尝试 运行 'sencha app build native' 命令,它应该可以工作或抛出不同的错误(至少它的进度)

请注意,在执行此操作之前,您需要安装 jdk 1.7,请在此处下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html

你的版本可能与我的不同,所以打开终端并输入 'cd /Library/Java/JavaVirtualMachines/' 切换目录,然后输入 'ls -la' 列出你在那里的所有文件。您应该会看到一个名为 jdk1.7.0_XX.jdk

的文件