2012-10-01 13 views
7

我最近一直在探索如何通過SL4A中的JRuby訪問Android的庫。我知道可以用Ruboto設計應用程序,但我只想要一個簡單的腳本來訪問當前SL4A不提供的API。我可以導入普通的罐子等,但我一直無法獲得Android的API。具體我想訪問'android.nfc'。有沒有辦法做到這一點,我還沒有想出或有可能不工作; SL4A確實聲明JRuby提供了一個直接的API橋接。使用JRuby直接調用Android Java方法

感謝, 克萊門特

+0

android.nfc包是android.jar的一部分,因此您應該可以訪問它。是您遇到問題的getSystemService(NFC_SERVICE)調用嗎? – theFunkyEngineer

回答

0

你能有你的JRuby的代碼?你是否正確構建你的類路徑,然後再執行java_import?

我只是加載了我的罐子到我的類路徑,我需要在每一個所謂的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