2017-10-23 9 views
0

現在Pepper Robotの開発を開始しました。 Choreagraphe/Python +標準Android SDKが正常に動作します。Softbank Pepperの開発 - AndroidスタジオでJava SDKを使用する - java-naoqi-sdk-<version>-<platform> .jar

私は今(ALMemory、ALSpeechToText ...)ネイティブペッパーAPIにアクセスするためのJava SDKがあり見ている:

http://doc.aldebaran.com/2-4/dev/java/index_java.html

私がこれまでにやった: 私は、ライブラリをダウンロードして、コメントを追加は、それは私のAndroidプロジェクトにlibsの下で。

私のコードは、ちょうどこの含まれています

パッケージcom.example.falu.peppertest。

import android.support.v7.app.AppCompatActivity; import android.os.Bundle;

import com.aldebaran.qi.Application; import com.aldebaran.qi.Session;

パブリッククラスMainActivityはAppCompatActivityを拡張{

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
} 
@Override 
protected void onStart() 
{ 
    super.onStart(); 

    String[] args = new String[]{"qi-url=tcp://falu-sp4.local:9559"}; 

    //Using official SDK 
    try { 
     Application app = new Application(args); 

    } 
    catch(Exception ex) { 
     ex.printStackTrace(); 
    } 
} } 
それはそれは

がされたアームのAndroid 4.残念ながらAdnroid SDKは、Android 5上で動作する(ロリポップ)で使用することができると言うの使用リストで

そこにこのライブラリを使用する方法はありますか?

私は常にメッセージを取得しようとした場合:

10-23:07:11:57.253 3311から3311/com.example.falu.peppertest A /アート: アート/ランタイム/ check_jni.cc :65] JNIがアプリケーションでエラーを検出しました: GetMethodIDがnullになりましたjclass 10-23 07:11:57.253 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] in GetMethodIDへの呼び出し10-23 07:11:57.253 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] java.lang.Objectから com.aldebaran.qi .DynamicObjectBuilder.object(l ong)10-23 07:11:57.253 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] "メイン" prio = 5 tid = 1 Runnable 10-23 07:11:57.253 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] |グループ= "main" sCount = 0 dsCount = 0 obj = 0x7490b000自己= 0xb4025800 10-23 07:11:57.254 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc :65] | sysTid = 3311 nice = 0 cgrp = default sched = 0/0 handle = 0xb7772ea0 10-23 07:11:57.254 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc :65] |状態= R schedstat =(0 0 0)utm = 15 stm = 42コア= 0 HZ = 100 10-23 07:11:57.254 3311-3311/com.example.falu.peppertest A/art: art /ランタイム/ check_jni.cc:65] | stack = 0xbf099000-0xbf09b000 stackSize = 8MB 10-23 07:11:57.254 3311-3311/com.example.falu.peppertest A/art:art/runtime/check_jni.cc:65] | mutexes = "mutator ロック"(共有共有)10-23 07:11:57.254 3311-3311/com.example.falu。UnwindCurrent :: Unwind(符号なし int、ucontext *)+ 83)10-23(システム管理者のために)0-23 07:11:57.254 3311から3311/com.example.falu.peppertest A /技術: 技術/ランタイム/ check_jni.cc:65]天然#01 PC 00003051 /system/lib/libbacktrace_libc++.so(バックトレース: :Unwind(unsigned int、 ucontext *)+33)10-23 07:11:57.254 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native: #02 pc 003c9e67 /system/lib/libart.so (art :: DumpNativeStack(std :: __ 1 :: basic_ostream> &、int、char const *、 )アート:: mirror :: ArtMe thod *)+ 135)10-23 07:11:57.254 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] native:#03 pc 00393222 /system /lib/libart.so(art :: Thread :: Dump(std :: __ 1 :: basic_ostream> &)const + 306)10-23 07:11:57.254 3311-3311/com.example.falu.peppertest A /アート: アート/ランタイム/ check_jni.cc:65]ネイティブ:#04 pc 001029bb /system/lib/libart.so(アート:: JniAbort(char const *、char const *)+ 1019) 10-23 07:11:57.255 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#05 pc 0010359c /system/lib/libart.so(art :: runtime: JniAbortF(char const *、char const *、 ...)+ 108)10-23 07:11:57.255 3311-3311/com.example.falu.peppertestScopedCheck :: CheckInstance(art :: ScopedCheck :: InstanceKind、 )_jobject(アート::ランタイム/ check_jni.cc:65)ネイティブ:#06 pc 0010613f /system/lib/libart.so *)+ 623)10-23 07:11:57.255 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#07 pc 0010792e /system/lib /libart.so(art :: ScopedCheck :: Check(bool、char const *、...) (。コンストラクト131)+718)10-23 07:11:57.255 3311-3311/com.example。 falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#08 pc 00115b2d /system/lib/libart.so(アート:: CheckJNI :: GetMethodID(_JNIEnv *、_jclass *、 char const *、char const *)+ 109)10-23 07:11:57.255 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#09 pc 00097952 /data/app/com.example.falu.peppertest-2/lib/x86/libqimessagingjniしたがって (JNIObject :: build(qi :: Object )+82)10-23 07:11:57.255 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc: 65]ネイティブ:#10 pc 00097dd5 /data/app/com.example.falu.peppertest-2/lib/x86/libqimessagingjni.so (JNIObject :: JNIObject(qi :: Object)+53)10-23 07:11:57.255 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#11 pc 0006d3e5 /data/app/com.example.falu。 peppertest-2/lib/x86/libqimessagingjni.so (Java_com_aldebaran_qi_DynamicObjectBuilder_object + 325)10-23 07:11:57.256 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#12 pc 000e6221 /system /lib/libart.so(art_quick_generic_jni_trampoline + 49)10-23 07:11:57.256 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#13 pc 000e3bc8 /system/lib/libart.so(art_quick_invoke_stub + 72)10-23 07:11:57.256 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65 ] native:#14 pc 0030bb55 /system/lib/libart。(アート::ミラー:: ArtMethod :: Invoke(アート::スレッド*、 符号なしint *、符号なしint、アート:: JValue *、char const *)+245)10-23 07:11:57.256 3311 -3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#15 pc 00407f73 /system/lib/libart.so(artInterpreterToCompiledCodeBridge + 115)10-23 07 :11:57.256 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#16 pc 0024a61b /system/lib/libart.so(bool art ::インタプリタ:: DoCall(アート::ミラー:: ArtMethod *、アート::スレッド*、アート:: ShadowFrame &、 art ::命令const *、符号なしショート、アート:: JValue *)+475)10-23 07:11:57.256 3311-3311/com.example.falu.peppertest A/art: art/r (art :: InvokeType)0、false、 false>(アート:インタラクティブ:: DoInvoke <(art :: InvokeType)0、false、art :: interpreter :: DoButton) :Thread *、art :: ShadowFrame &、art :: Instruction const *、 unsigned short、art :: JValue *)+ 266)10-23 07:11:57.256 3311-3311/com.example.falu.peppertest (アート::スレッド*、アート::ランク/ check_jni.cc:65)ネイティブ:#18 pc 000c3bb5 /system/lib/libart.so(art :: JValue art :: interpreter :: ExecuteGotoImpl art :: MethodHelper &、art :: DexFile :: CodeItem const *、art :: ShadowFrame &, art :: JValue)+40229)10-23 07:11:57.256 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#19 pc 002342a4 /system/lib/libart.so(artInterpreterToInterpreterBridge + 244)10-23 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#20 pc 0024b037 /system/lib/libart.so(bool art ::インタプリタ:: DoCall(アート::ミラー:: ArtMethod *、アート::スレッド*、アート:: ShadowFrame &、 art ::命令const *、符号なしショート、アート:: JValue *)+ 439) 23 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#21 pc 0043ee2e /system/lib/libart.so(bool art ::インタープリタ:: DoInvokeアート::スレッド*、アート:: ShadowFrame &、アート::命令const *、 符号なしの短い、アート:: JValue *)+ 414)10-23(アート:: InvokeType)2、true、 false 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#22 pc 000bb65d /system/lib/libart.so(アート: :JValue art :: interpreter :: ExecuteGotoImpl(art :: Thread *、 art :: MethodHelper &、アート:: DexFile :: CodeItem const、アート:: ShadowFrame &,art :: JValue)+6093)10 -23 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#23 pc 002342a4 /s ystem/lib/libart.so(artInterpreterToInterpreterBridge + 244)10-23 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ: 24 pc 0024a61b /system/lib/libart.so(bool art :: interpreter :: DoCall(アート:: mirror :: ArtMethod *、アート::スレッド*、アート:: ShadowFrame &、 art :: Instruction const * 、unsigned short、art :: JValue *)+ 475)10-23 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native: #25 pc 0043f6dc /system/lib/libart。(ブール )アート::インタプリタ:: DoInvoke <(art :: InvokeType)1、false、 false>(art :: Thread *、art :: ShadowFrame &、art :: Instruction const *、 unsigned short、art :: JValue *)+ 316)10-23 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#26 pc 000bb888 /system/lib/libart.so(art :: JValue art :: interpreter :: ExecuteGotoImpl(art :: Thread *、 art :: MethodHelper &、art :: DexFile :: CodeItem const、アート:: ShadowFrame & 、 art :: JValue)+6648)10-23 07:11:57.257 3311-3311/com.example.falu.peppertest A/art: art/run time/check_jni.cc:65] native:#27 pc 002342a4 /system/lib/libart.so(artInterpreterToInterpreterBridge + 244)10-23 07:11:57.257 3311-3311/com.example.falu.peppertest A/bool art :: interpreter :: DoCall(art :: mirror :: ArtMethod *、art :: artMethod、アート::ランタイム/ check_jni.cc:65)ネイティブ:#28 pc 0024a61b /system/lib/libart.soスレッド*、アート:: ShadowFrame &、 art ::命令const *、符号なしshort、アート:: JValue *)+ 475)10-23 07:11:57.258 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#29 pc 0043eb2e /system/lib/libart.so(bool art :: interpreter :: DoInvoke <(art :: InvokeType)2、false、 false>(art :: Thread *、art :: ShadowFrame &、art :: Instruction const *、 unsigned short、art :: JValue *)+ 414)10-23 07:11:57.258 3311-3311/com.example.falu.peppertest A/art: art/(art :: interpreter :: ExecuteGotoImpl(art :: Thread *、 art :: MethodHelper &)は、 art :: DexFile :: CodeItem const *、art :: ShadowFrame &, art :: JValue)+31677)10-23 07:11:57.258 3311-3311/com.example.falu.peppertest A/art: アート/ランタイム/ check_jni.cc:65]ネイティブ:#31 pc 002339a3 /system/lib/libart.so (art :: interpreter :: EnterInterpreterFromStub(ar t :: Thread *、 art :: MethodHelper &、art :: DexFile :: CodeItem const *、 art :: ShadowFrame &)+195)10-23 07:11:57.258 3311-3311/com.example。 falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#32 pc 00434a88 /system/lib/libart.so(artQuickToInterpreterBridge + 872)10-23 07:11:57.258 3311-3311 /com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#33 pc 000e62b2 /system/lib/libart.so(art_quick_to_interpreter_bridge + 34)10-23 07:11 :57.258 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#34 pc 000e3bc8 /system/lib/libart.so(art_qu ick_invoke_stub + 72)10-23 07:11:57.258 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#35 pc 0030bb55 /system/lib /libart.so(art :: mirror :: ArtMethod :: Invoke(art :: Thread *、 、unsigned int *、unsigned int、アート:: JValue *、char const *)+ 245)10-23 07:11 :57.259 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#36 pc 00149db0 /system/lib/libart.so (art :: ClassLinker: :InitializeClass(art :: Handle、 ブール、ブール)+1312)10-23 07:11:57.259 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65 ] native:#37 pc 0014ac4c /system/lib/libart。したがって、 (art :: ClassLinker :: EnsureInitialized(art :: Handle、 bool、bool)+108)10-23 07:11:57.259 3311-3311/com.example.falu.peppertest A/art: art /runtime/check_jni.cc:65] native:#38 pc 000c6d15 /system/lib/libart.so(art :: JValue art :: interpreter :: ExecuteGotoImpl(art :: Thread *、 art :: MethodHelper & 、art :: DexFile :: CodeItem const *、art :: ShadowFrame &,art :: JValue)+52869)10-23 07:11:57.259 3311-3311/com.example.falu.peppertest A/art: アート/ランタイム/ check_jni.cc:65]ネイティブ:#39 pc 002339a3 /system/lib/libart.so (art :: interpreter :: EnterInterpreterFromStub(art :: Th *読み、 芸術:: MethodHelper &、芸術:: DexFile :: CodeItemののconst *、 芸術:: ShadowFrame &)195)10-23 07:11:57.259 3311から3311/com.example.falu.peppertest/art: art/runtime/check_jni.cc:65] native:#40 pc 00434a88 /system/lib/libart.so(artQuickToInterpreterBridge + 872)10-23 07:11:57.259 3311-3311/com。 example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#41 pc 000e62b2 /system/lib/libart.so(art_quick_to_interpreter_bridge + 34)10-23 07:11:57.259 3311 -3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#42 pc 00852ca5 /data/dalvik-cache/x86/system @ fram [email protected](???)10-23 07:11:57.259 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65]ネイティブ:#43 pc 98fe3802 ??? 10-23 07:11:57.259 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#44 pc 54984e1f ??? 10-23 07:11:57.260 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] native:#45 pc 9f0097a1 ??? 10/3 07:11:57.260 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] にcom.aldebaran.qi.DynamicObjectBuilder.object(ネイティブメソッド) 10-23 07:11:57.260 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] at com.aldebaran.qi.DynamicObjectBuilder.object(DynamicObjectBuilder.java :118) 10-23 07:11:57.260 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] でcom.aldebaran.qi.EmbeddedTools.initTypeSystem EmbeddedTools.java:46) 10-23 07:11:57.260 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] でcom.aldebaran.qi.EmbeddedTo ols.loadEmbeddedLibraries(EmbeddedTools.java:148) 10-23 07:11:57.260 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] でcom.aldebaran .qiセッション(Session.java:16)10-23 07:11:57.260 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] com .example.falu.peppertest.MainActivity.onStart(MainActivity.java:22) 10-23 07:11:57.260 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc: 65] at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236) 10-23 07:11:57.260 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc :65] at android.app.Activity.performStart(Activity.java:6026)10-23 07:11:57.260 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2296) 10-23 07:11:57.261 3311-3311/com.example.falu。peppertest A/art: art/runtime/check_jni.cc:65] android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2395) 10-23 07:11:57.261 3311-3311/com.example.falu .peppertest A/art: art/runtime/check_jni.cc:65] android.app.ActivityThread.access $ 800(ActivityThread.java:151)10-23 07:11:57.261 3311-3311/com.example .falu.peppertest A/art: アート/ランタイム/ check_jni.cc:65] android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1311) 10-23 07:11:57.261 3311-3311/com.example.falu.peppertestA/art: art/runtime/check_jni.cc:65] at android.os.Handler.dispatchMessage(Handler.java:102)10-23 07:11:57.261 3311-3311/com.example.falu.peppertest A/art: アート/ランタイム/ check_jni.cc:65] at android.os.Looper.loop(Looper.java:135)10-23 07:11:57.261 3311-3311/com.example.falu.peppertest A/art: アート/ランタイム/ check_jni.cc:65] at android.app.ActivityThread.main(ActivityThread.java:5398)10-23 07:11 :57.261 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] でjava.lang.reflect.Method.invoke!(ネイティブメソッド)10-23 07:11 :57.261 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] でjava.lang.reflect.Method.invoke(Method.java:372)10-23 07:11:57.261 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] でcom.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903) 10-23 07:11:57.262 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] でcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)10-23 07:11: 57.262 3311-3311/com.example.falu.peppertest A/art: art/runtime/check_jni.cc:65] 10-23 07:11:57.365 3311-3311/com.example.falu.peppertest A/art : art/runtime/runtime.cc:289]実行中止中...

ありがとうございました!

+0

'GetMethodIDはnull jclassを受け取った' - あなたの 'com.example.falu.peppertest'アプリのメソッド 'GetMethodID'に' jclass'ではなくNULLを渡します。デバッガを使用してみてください。 さらに詳しいヘルプが必要な場合は、コードを投稿してください。 –

+0

こんにちは! これは私が使用するpepepr Javaライブラリの中で起こります。コード内に がある場合、私が行うことはこれだけです: セッションセッション=新しいセッション(); //com.aldebaran.qi。セッション; –

+0

このライブラリの使い方を教えてください。 –

答えて

0

Pepper Java SDKは、コンパイルされたネイティブバイナリ(Linux/Androidでは.so、Windowsでは.dllと思われます)を使用します。これは、ほとんどの場合と同じようにjarファイルが移植性がないことを意味します。

このSDKの以前のバージョンでは、ターゲットプラットフォーム(たとえばPepperのLinux)用のバイナリが用意されていたため、.soファイルを置き換えない限りタブレットでは機能しません。最新のバージョンはAndroidを検出して別のバイナリに切り替えるようですが、まだ動作させることができませんでした。特に、タブレットには適していません。

のAndroid SDK

http://android.aldebaran.com/sdk/doc/pepper-sdk/introduction.html

これはNaoqiのバージョンと互換性があるかどうかはありますが、別の問題ですが、私はそれは、エミュレータと仮想ロボットで作業を取得することができたが、それはNaoqiようですプラグインには、私がアクセスできるPepperとは異なるサービスがあります。

+0

はい、私は過去にも変化があったと思う。残念ながら、最新のSDKを使用すると、NaoQI APIにアクセスする方法はありません:http://doc.aldebaran.com/2-5/naoqi/index.html たとえば、発生したイベントを使用する方法が見つかりましたか? –

+0

com.aldebaran.qi.helper.proxies.ALMemoryへの呼び出しのように、最新のプレーンJava SDKが動作するはずですが、subscribeToEventがありますが、これはロボットのメインコンピュータやタブレットではなく外部のコンピュータで使用するSDKです。タブレットはAndroid SDKです。現時点ではNaoqiになっているようですが、API呼び出しを管理するAndroidサービス(エミュレータで表示されます)に依存しているため、別のNaoqiを補うことは困難ですバージョン。 – Edd

+0

もう1つ、以前のバージョンのプラグインを使用しましたか(0.9と思いますか?)古いbuild.gradle設定を使用してプロジェクトを試してみると、あなたのロボットのバージョンによっては、これはあなたにいくらかのアクセスを与えるかもしれません。 – Edd

関連する問題