Zajmuję się tworzeniem aplikacji dla systemu Android, która będzie używać opaski na rękę Myo. Chcę go zaimplementować jako usługę ułatwień dostępu, aby gesty wykryte przez opaskę mogły np. nawigować do domu itpNiezadowolony błąd łącza podczas inicjowania koncentratora Myo w systemie Android
próbuję zainicjować piastę, ale aplikacja zatrzymuje się z powodu następującego błędu stosu:
01-06 23:42:41.222 11979-11979/eu.miko.myoid E/AndroidRuntime: FATAL EXCEPTION: main
Process: eu.miko.myoid, PID: 11979
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/eu.miko.myoid-1/base.apk"],nativeLibraryDirectories=[/data/app/eu.miko.myoid-1/lib/arm, /vendor/lib, /system/lib]]] couldn't find "libgesture-classifier.so"
at java.lang.Runtime.loadLibrary(Runtime.java:367)
at java.lang.System.loadLibrary(System.java:1076)
at com.thalmic.myo.scanner.Scanner.<clinit>(Scanner.java:31)
at com.thalmic.myo.Hub.init(Hub.java:201)
at eu.miko.myoid.MyoidAccessibilityService.onCreate(MyoidAccessibilityService.java:21)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:2877)
at android.app.ActivityThread.-wrap4(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1427)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Jest to kod używać do inicjowania piasty, zgodnie z dokumentacją Myo. Próbowałem umieścić go zarówno na metody onCreate i onServiceConnected usługi dostępności, błąd pojawia się w każdym razie.
Hub hub = Hub.getInstance();
if (hub.init(this, getPackageName())) {
Intent intent = new Intent(this, ScanActivity.class);
startActivity(intent);
hub.setLockingPolicy(Hub.LockingPolicy.NONE);
hub.addListener(mListener);
}
else {
Log.e(TAG, "Could not initialize the Hub.");
}
Używam najnowszego zestawu SDK Myo Android. Testowanie na Nexusie 5 przy użyciu najnowszego oprogramowania układowego.
Dla mnie wygląda na błąd w SDK, ale może to ma coś wspólnego z moją konfiguracją? Każda pomoc będzie doceniona.
Próbki podane w pakiecie SDK nie wydają się jednak cierpieć z powodu tego samego problemu.
Teoretycznie plik libgesture-classifier.so dodaje, poprzez:
jestem tym Myo SDK w projekcie poprzez akt build.gradle:
dependencies { ... repositories { maven { // this must point to the myorepository distributed with the Myo SDK url '../myorepository' } } compile('com.thalmic:myosdk:[email protected]') }
Myorepository zawiera plik myosdk-0.10.0.aar.
Który, kiedy zbadać go jako zamek, zawiera libs/native libs.jar
co z kolei przy badaniu jako zip zawiera , z których każdy zawiera jeden plik libgesture- classifier.so
Czy dodałeś pliki "libgesture-classifier.so" do swojej aplikacji? – geisshirt
Tak, zobacz zmiany w pytaniu :) –
@ user2363767: Czy znalazłeś odpowiednie rozwiązanie? Ręcznie skopiowałem pliki .so do folderu 'src/main/jniLibs' jako obejście. – JiTHiN