【问题标题】:Using JRuby to directly call Android Java Methods使用JRuby直接调用Android Java Methods
【发布时间】:2012-09-22 15:24:57
【问题描述】:

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

谢谢, 克莱门特

【问题讨论】:

  • android.nfc 包是 android.jar 的一部分,所以你应该可以访问它。是您遇到问题的 getSystemService(NFC_SERVICE) 调用吗?

标签: java android jruby nfc sl4a


【解决方案1】:

您能否包含您的 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-07
    • 2011-08-16
    • 2016-07-09
    相关资源
    最近更新 更多