有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在安卓studio中使用JRuby的java

我试图在Android studio中创建的项目中使用JRuby。我已经构建了最新的JRuby(截至2014年9月10日),并完全更新了Android Studio。我有一个可以用来测试的工作应用程序。我有一份jruby。MyApp/app/libs目录中的jar。在那里,我右键点击了jruby。jar并选择了“addaslibrary”,这可能做了些什么(尽管我不确定),并在构建中添加了一行“compilefiles('libs/jruby.jar')”。MyApp/app/中的gradle

在其中一个类文件中,我有“import org.jruby.embed.ScriptingContainer;”,安卓工作室说哪一个是好的(如果我没有添加jruby.jar作为库,我就不能包含这个,没有错误)。然后在其中一种工作方法中,我说“ScriptingContainer=newScriptingContainer();”。当我运行此方法时,应用程序将崩溃。我不会尝试包含整个错误消息,但重要的部分似乎是:

 Caused by: java.lang.ExceptionInInitializerError
        at org.jruby.embed.internal.AbstractLocalContextProvider.<init>(AbstractLocalContextProvider.java:42)
        at org.jruby.embed.internal.SingletonLocalContextProvider.<init>(SingletonLocalContextProvider.java:88)
        at org.jruby.embed.ScriptingContainer.getProviderInstance(ScriptingContainer.java:248)
        at org.jruby.embed.ScriptingContainer.<init>(ScriptingContainer.java:228)
        at org.jruby.embed.ScriptingContainer.<init>(ScriptingContainer.java:185)

 Caused by: java.lang.RuntimeException: unsupported Java version: 0.9
        at org.jruby.RubyInstanceConfig.initGlobalJavaVersion(RubyInstanceConfig.java:1858)
        at org.jruby.RubyInstanceConfig.<clinit>(RubyInstanceConfig.java:1608)

至少,这些部分对我来说是有意义的。我不知道为什么会出现错误“java.lang.RuntimeException:unsupported java version:0.9”,因为我使用的是1.8.0\u 20。其余的错误我无法理解。当我点击任何给我一个错误的文件(比如AbstractLocalContextProvider.java:42)时,Android Studio将显示该文件,但也会显示“未找到源”。这可能是问题所在,但我不知道为什么它找不到来源

谢谢你的帮助

布莱恩


共 (1) 个答案

  1. # 1 楼答案

    Uwe Kubosch(‏@donv70)能够通过Twitter告诉我解决方案,这要归功于他,但我想在这里发布解决方案,以防其他人需要

    是Java版本导致了这个问题。在鲁博托,问题在这里得到了解决:https://github.com/ruboto/ruboto/blob/master/assets/src/org/ruboto/JRubyAdapter.java#L137 在Android Studio中使用时,只需包含以下行:System.setProperty("jruby.bytecode.version", "1.6"); 当然,数字可以是1.6、1.7或1.8,这取决于您的Java版本