2012-10-01 15 views
7

Son zamanlarda, SL4A'da JRuby aracılığıyla Android Kütüphanelerine nasıl erişilebileceğini araştırıyorum. Uygulamaların Ruboto ile tasarlanmasının mümkün olduğunu biliyorum, ancak sadece mevcut SL4A'nın sunmadığı API'lere erişmek için basit bir komut dosyası istiyorum. Normal kavanozları ve benzerlerini alabilirim ancak Android'in API'sini kullanamadım. Özellikle 'android.nfc' erişmek istiyorum. Bunu henüz anlamadığım ya da çalışmanın mümkün olmadığı bir yol var mı? SL4A, JRuby'nin doğrudan bir API köprüsü sunduğunu belirtiyor.Doğrudan Android Java Yöntemleri'ni aramak için JRuby'yi kullanma

sayesinde Clement

+0

android.nfc paketi, android.jar dosyasının bir parçasıdır, böylece ona erişebilmeniz gerekir. Sorun yaşadığınız getSystemService (NFC_SERVICE) çağrısı mı? – theFunkyEngineer

cevap

0

size jruby kodunu dahil miyim? Sınıfyolunuzu düzgün bir şekilde inşa ediyor ve java_import'u da yapıyor musunuz?

aşağıdaki sadece bunu java_jars.rb denilen her .rb dosyasında gerektiren benim sınıf içine benim kavanoz kadar yükleme için bir yakut dosyası içerir vardır:

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

ardından ana yakut dosyasında bunu :

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