使用JRuby直接调用Android Java方法

时间:2012-10-01 18:39:06

标签: java android jruby nfc sl4a

我最近一直在探索如何通过SL4A中的JRuby访问Android的库。我知道可以用Ruboto设计应用程序,但我只是想用一个简单的脚本来访问当前SL4A不提供的API。我可以导入普通的罐子等,但我无法获得Android的API。具体我想访问'android.nfc'。有没有办法做到这一点,我还没有想出或有可能不工作; SL4A确实声明JRuby提供了直接的API桥接。

谢谢, 克莱门特

1 个答案:

答案 0 :(得分:0)

你能加入你的Jruby代码吗?您是否正确构建了类路径,然后还要执行java_import?

我有一个ruby文件,只是为了将我的jar加载到我的类路径中,我需要在每个名为java_jars.rb的.rb文件中包含以下内容:

Dir["target/dependency/\*.jar"].each { |jar| require jar }

然后在主ruby文件中执行此操作:

include Java
require 'java_jars'
java_import 'com.package.name.blah.ApiClassName'

def methodName
    apiObject = com.package.name.blah.ApiClassName.new
    # don't forget methodName becomes method_name in JRuby
    apiObject.method_name
end