使用JRuby直接调用Android Java方法

Cle*_*ent 7 java android jruby nfc sl4a

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

谢谢,克莱门特

Rob*_*ran 0

你能包含你的 Jruby 代码吗?您是否正确构建了类路径,然后也执行了 java_import ?

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

Dir["target/dependency/\*.jar"].each { |jar| require jar }
Run Code Online (Sandbox Code Playgroud)

然后在主 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
Run Code Online (Sandbox Code Playgroud)