2014-09-29 3 views
0

Android 용 RubyMotion (베타)에서 스레드를 만들려고합니다.RubyMotion for Android 용 스레드를 만드는 방법

class MyRun 
    def run 
    end 
end 

r = MyRun.new 
t = Thread.new(r) 
t.start 

내가 오류는 다음과 같습니다 :

나는 다음과 같은 코드를 시도

java.lang.NoSuchMethodError: no method with name='< init>' signature='(Ljava/lang/Runnable;)V' in class Lcom/rubymotion/Thread;

그것은 자동으로 (Runnable를)하지만 혼란 이유 임 확실하지 않을 권리 서명을 찾는 것입니다 .

http://www.ruby-doc.org/core-2.1.3/Thread.html

+0

이 문제를 해결할 수 있었습니까? 나는 Rubyotion과 비슷한 무언가에 안드로이드에 붙어있다. – acrogenesis

답변

0

이 작동합니다

http://www.rubymotion.com/developer-center/api/Thread.html

http://developer.android.com/reference/java/lang/Thread.html

:

t = Thread.new do 
    r.run 
end 
# Don't need to explicitly start, the thread will start automatically by the thread scheduler. 
# t.start 

루비의 Thread.new는 블록이 필요합니다. .new에 전달 된 인수 블록에 전달 얻을 것이다 :

Thread.new('some value') do |arg1| 
    arg1 # => "some value" 
end 

워드 프로세서 당신이 자바의 API되지 루비 있습니다에 링크.

+0

RubyMotion을 사용하고있다. http://www.rubymotion.com/developer-center/api/Thread.html 대답을 사용하고 난 후에도 여전히 오류가 발생한다. java .lang.NoSuchMethodError : 이름이 ''인 메소드가 없습니다. Lcom/rubymotion/Thread 클래스의 signature = '() V'; –

+0

@ diego.greyrobot 우리는 무엇을 선호합니까? 1) 루비 스레드 또는 2) AsyncTask? ---> https://developer.android.com/reference/android/os/AsyncTask.html – AbhimanyuAryan

+0

어떤 AsyncTask lib를 참조합니까? – DiegoSalazar