Я новичок в Android и потребовал от меня создать приложение с функциями на C++, они предоставили файлы * .so.Android не может связывать * .so lib
Я поставил * .so файлы в следующем каталоге:
src
│ ├── main
│ │ ├── java
│ │ ├── jniLibs
│ │ │ ├── armeabi
│ │ │ │ ├── libjni_lib1.so
│ │ │ │ ├── libjni_lib2.so
│ │ │ │ ├── libjni_libn.so
Y нагрузки это следующим образом:
static {
System.loadLibrary("jni_lib1");
}
Но когда я отладки приложения, получить следующее сообщение об ошибке:
java.lang.UnsatisfiedLinkError: Native method not found: com.cloudpos.jniinterface.SmartCardInterface.smartcardInit:()I
at com.cloudpos.jniinterface.SmartCardInterface.smartcardInit(Native Method)
at cr.pf.com.controller.SmartCardController.searchBegin(SmartCardController.java:57)
at cr.pf.com.cr.MainActivity.onClick(MainActivity.java:134)
at android.view.View.performClick(View.java:4438)
at android.view.View$PerformClick.run(View.java:18439)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5111)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:780)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:596)
at dalvik.system.NativeStart.main(Native Method)
I/Process: сигнал отправки. PID: 5364 SIG: 9 Приложение прекращено.
Я уже читал, как добавлять файлы * .so, и только говорит, что все они помещаются в папки jniLibs, как я могу это сделать?
1) .apk файлы являются zip-файлами, переименовывают ваш файл apk и разархивируют его, чтобы увидеть, внесли ли файлы .so в файл apk. 2) Пожалуйста, покажите файлы .h и .c/C++ с 'smartcardInit (...)'. 3) Java loadLibrary не загружает зависимые .so файлы, вам нужно загрузить самый зависимый .so файл 1-го, затем следующий самый зависимый .so-файл и т. Д. –
Я уже это сделал, и я видел библиотеки в папке lib, Что еще я могу сделать? – mareyes
Итак, вам это удалось? –