Разработка Softbank Pepper — используйте Java SDK в Android Studio — java-naoqi-sdk- & lt; версия & gt; — & lt; платформа & gt; .jar

В настоящее время я начал разрабатывать для Pepper Robot.
Хорея / Python + стандартный Android SDK работает отлично.

Теперь я видел, что есть Java SDK для доступа к Pepper API (ALMemory, ALSpeechToText …):

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

Что я сделал до сих пор:
Я скачал библиотеку и добавил ее в свой Android-проект под libs.

Мой код просто содержит это:

пакет com.example.falu.peppertest;

import android.support.v7.app.AppCompatActivity; Импортировать
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();
}
} }

В списке использования сказано, что его можно использовать на ARM Android 4. К сожалению, Adnroid SDK работает на Android 5 (Lollipop)

Есть ли способ использовать эту библиотеку там?

Если я пытаюсь, я всегда получаю сообщение:

10-23 07: 11: 57.253 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] JNI ОБНАРУЖИЛА ОШИБКУ В ПРИЛОЖЕНИИ:
GetMethodID получил нулевой jclass 10-23 07: 11: 57.253
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] при вызове GetMethodID 10-23
07: 11: 57.253 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] из java.lang.Object
com.aldebaran.qi.DynamicObjectBuilder.object (long) 10-23 07: 11: 57.253
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] «main» 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] | group = «main» sCount = 0 dsCount = 0
obj = 0x7490b000 self = 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 core = 0 HZ = 100 10-23 07: 11: 57.254
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] | стек = 0xbf099000-0xbf09b000
stackSize = 8MB 10-23 07: 11: 57.254 3311-3311 / com.example.falu.peppertest
A / art: art / runtime / check_jni.cc: 65] | удерживаемые мьютексы = «мутатор
замок «(общий доступ) 10-23 07: 11: 57.254
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] родной: # 00 pc 00005d03
/system/lib/libbacktrace_libc++.so (UnwindCurrent :: Unwind (unsigned)
int, ucontext *) + 83) 10-23 07: 11: 57.254
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 01 pc 00003051
/system/lib/libbacktrace_libc++.so (Backtrace :: 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 *,
art :: mirror :: ArtMethod *) + 135) 10-23 07: 11: 57.254
3311-3311 / com.example.falu.peppertest A / 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 / art:
art / runtime / check_jni.cc: 65] native: # 04 pc 001029bb
/system/lib/libart.so (art :: 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] native: # 05 pc 0010359c
/system/lib/libart.so (art :: JniAbortF (char const *, char const *,
…) + 108) 10-23 07: 11: 57.255 3311-3311 / com.example.falu.peppertest
A / art: art / runtime / check_jni.cc: 65] родной: # 06 pc 0010613f
/system/lib/libart.so
(Статья :: ScopedCheck :: CheckInstance (статья :: ScopedCheck :: InstanceKind,
_jobject *) + 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 *, …)
(.constprop.131) +718) 10-23 07: 11: 57.255
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 08 pc 00115b2d
/system/lib/libart.so (art :: 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.so
(JNIObject :: билд (ци :: Object) +82) 10-23 07: 11: 57.255
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 10 pc 00097dd5
/data/app/com.example.falu.peppertest-2/lib/x86/libqimessagingjni.so
(JNIObject :: JNIObject (ци :: 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] родной: # 12 шт. 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.so (art :: mirror :: ArtMethod :: Invoke (art :: Thread *,
unsigned int *, unsigned int, art :: 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] native: # 16 pc 0024a61b
/system/lib/libart.so (bool art :: интерпретатор :: DoCall (art :: mirror :: ArtMethod *, art :: Thread *, art :: ShadowFrame)&,
art :: Инструкция const *, без знака короткая, art :: JValue *) + 475) 10-23
07: 11: 57.256 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] родной: # 17 шт. 0043fbaa
/system/lib/libart.so (bool
искусство :: Переводчик :: DoInvoke<(art :: InvokeType) 0, false,
false> (art :: Thread *, art :: ShadowFrame&, art :: Инструкция const *,
без знака, art :: JValue *) + 266) 10-23 07: 11: 57.256
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 18 pc 000c3bb5
/system/lib/libart.so (art :: JValue
искусство :: Переводчик :: ExecuteGotoImpl (статья :: Thread *,
искусство :: 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 (art :: mirror :: ArtMethod *, art :: Thread *, art :: ShadowFrame)&,
art :: Инструкция const *, без знака короткая, art :: JValue *) + 439) 10-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
искусство :: Переводчик :: DoInvoke<(art :: InvokeType) 2, правда,
false> (art :: Thread *, art :: ShadowFrame&, art :: Инструкция const *,
без знака, art :: JValue *) + 414) 10-23 07: 11: 57.257
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 22 pc 000bb65d
/system/lib/libart.so (art :: JValue
искусство :: Переводчик :: ExecuteGotoImpl (статья :: Thread *,
искусство :: MethodHelper&, art :: DexFile :: CodeItem const *, art :: ShadowFrame&,
art :: JValue) +6093) 10-23 07: 11: 57.257
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] родной: # 23 шт. 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: # 24 pc 0024a61b
/system/lib/libart.so (bool art :: интерпретатор :: DoCall (art :: mirror :: ArtMethod *, art :: Thread *, art :: ShadowFrame)&,
art :: Инструкция const *, без знака короткая, 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.so (bool
искусство :: Переводчик :: DoInvoke<(art :: InvokeType) 1, false,
false> (art :: Thread *, art :: ShadowFrame&, art :: Инструкция const *,
без знака, art :: JValue *) + 316) 10-23 07: 11: 57.257
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 26 pc 000bb888
/system/lib/libart.so (art :: JValue
искусство :: Переводчик :: ExecuteGotoImpl (статья :: Thread *,
искусство :: MethodHelper&, art :: DexFile :: CodeItem const *, art :: ShadowFrame&,
art :: JValue) +6648) 10-23 07: 11: 57.257
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / 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 / art:
art / runtime / check_jni.cc: 65] native: # 28 pc 0024a61b
/system/lib/libart.so (bool art :: интерпретатор :: DoCall (art :: mirror :: ArtMethod *, art :: Thread *, art :: ShadowFrame)&,
art :: Инструкция const *, без знака короткая, art :: JValue *) + 475) 10-23
07: 11: 57.258 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 29 pc 0043eb2e
/system/lib/libart.so (bool
искусство :: Переводчик :: DoInvoke<(art :: InvokeType) 2, false,
false> (art :: Thread *, art :: ShadowFrame&, art :: Инструкция const *,
без знака, art :: JValue *) + 414) 10-23 07: 11: 57.258
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 30 pc 000c1a4d
/system/lib/libart.so (art :: JValue
искусство :: Переводчик :: ExecuteGotoImpl (статья :: Thread *,
искусство :: MethodHelper&, art :: DexFile :: CodeItem const *, art :: ShadowFrame&,
art :: JValue) +31677) 10-23 07: 11: 57.258
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 31 pc 002339a3
/system/lib/libart.so
(Статья :: Переводчик :: EnterInterpreterFromStub (статья :: Thread *,
искусство :: MethodHelper&, art :: DexFile :: CodeItem const *,
искусство :: 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] native: # 34 pc 000e3bc8
/system/lib/libart.so (art_quick_invoke_stub + 72) 10-23 07: 11: 57.258
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 35 pc 0030bb55
/system/lib/libart.so (art :: mirror :: ArtMethod :: Invoke (art :: Thread *,
unsigned int *, unsigned int, art :: JValue *, char const *) + 245) 10-23
07: 11: 57.259 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 36 pc 00149db0
/system/lib/libart.so
(Статья :: ClassLinker :: InitializeClass (статья :: Handle,
bool, bool) +1312) 10-23 07: 11: 57.259
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] родной: # 37 шт. 0014ac4c
/system/lib/libart.so
(Статья :: ClassLinker :: EnsureInitialized (статья :: 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
искусство :: Переводчик :: ExecuteGotoImpl (статья :: Thread *,
искусство :: MethodHelper&, art :: DexFile :: CodeItem const *, art :: ShadowFrame&,
art :: JValue) +52869) 10-23 07: 11: 57.259
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] native: # 39 pc 002339a3
/system/lib/libart.so
(Статья :: Переводчик :: EnterInterpreterFromStub (статья :: Thread *,
искусство :: MethodHelper&, art :: DexFile :: CodeItem const *,
искусство :: ShadowFrame&) +195) 10-23 07: 11: 57.259
3311-3311 / com.example.falu.peppertest A / 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] native: # 42 pc 00852ca5
/data/dalvik-cache/x86/system@[email protected] (???) 10-23
07: 11: 57.259 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] родной: # 43 пк 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-23
07: 11: 57.260 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] в
com.aldebaran.qi.DynamicObjectBuilder.object (собственный метод) 10-23
07: 11: 57.260 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] в
com.aldebaran.qi.DynamicObjectBuilder.object (DynamicObjectBuilder.java:118)
10-23 07: 11: 57.260 3311-3311 / com.example.falu.peppertest A / 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.peppertest A / art:
art / runtime / check_jni.cc: 65] в
com.aldebaran.qi.EmbeddedTools.loadEmbeddedLibraries (EmbeddedTools.java:148)
10-23 07: 11: 57.260 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] в
com.aldebaran.qi.Session. (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] в
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] в
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:
art / runtime / check_jni.cc: 65] в
android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1311)
10-23 07: 11: 57.261 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] в
android.os.Handler.dispatchMessage (Handler.java:102) 10-23
07: 11: 57.261 3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] в
android.os.Looper.loop (Looper.java:135) 10-23 07: 11: 57.261
3311-3311 / com.example.falu.peppertest A / art:
art / runtime / check_jni.cc: 65] в
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

Решение

Pepper Java SDK использует скомпилированные собственные двоичные файлы (.so в Linux / Android, я полагаю, .dll в Windows), что означает, что файл jar не является переносимым, как большинство из них.

В более ранних версиях этого SDK у него были только двоичные файлы для целевой платформы (например, Linux от Pepper), поэтому он просто не будет работать на планшете, если вы не замените файлы .so. Последняя версия, похоже, обнаруживает Android и переключается на разные двоичные файлы, но все же я не смог заставить ее работать, и, в частности, она не выдвинута как подходящая для планшета.

Есть Android SDK

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

Будет ли это совместимо с вашей версией Naoqi — это другой вопрос, я смог заставить его работать с эмулятором и виртуальным роботом, но кажется, что Naoqi, который поставляется с плагином, имеет другие сервисы по сравнению с Pepper, к которому у меня есть доступ.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]