Я пытаюсь добавить файл .so в мой проект студии android, но получаю сообщение об ошибке при попытке загрузить его в файл java.Я добавил библиотеку .so в jniLibs / arm64-v8a, jniLibs / armeabi-v7a, jniLibs / x86 и jniLibs / x86_64 с именем libopendnp3java.so.И я добавил следующее в defautConfig моего build.gradle.
ndk {
abiFilters "arm64-v8a", "armeabi-v7a", "x86", "x86_64"
}
Я добавил следующее в свой файл gradle.properties
android.useDeprecatedNdk=true
И я вызываю библиотеку вmy ReportActivity.java с
static {
System.loadLibrary("opendnp3java");
}
Когда я запускаю программу на Galaxy S7 (Android версии 7.0) в режиме разработчика, я получаю следующую ошибку
05-28 11:15:23.835 1509-1509/com.company.example E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.company.example, PID: 1509
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/com.comapny.example-1/lib/arm64/libopendnp3java.so" has unexpected e_machine: 62
at java.lang.Runtime.loadLibrary0(Runtime.java:977)
at java.lang.System.loadLibrary(System.java:1567)
at com.company.example.ReportActivity.<clinit>(ReportActivity.java:49)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1086)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2834)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6688)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
Я смотрел наStackOverflow и другие сайты за ошибку unexpected e_machine: 62
но не смогли ничего найти.Ближайшим был unexpected e_machine: 40
, но решения для этих проблем у меня не работали
РЕДАКТИРОВАТЬ: я попытался использовать следующее в моем build.gradle в качестве замены для ndk, но это ничего не меняет
splits {
abi {
enable true
reset()
include "arm64-v8a", "armeabi-v7a", "x86", "x86_64"
universalApk true
}
}
Я пропустил еще один шаг или я добавил файл в неправильный каталог?
Заранее спасибо!
РЕДАКТИРОВАТЬ 2: Я пытался запустить его на Pixel 2 XL APIP x86_64 Эмулятор.Файл libopendnp3java.so был найден и прочитан правильно, но я получил новую ошибку
java.lang.UnsatisfiedLinkError: dlopen failed: library "libasiodnp3.so.2" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1016)
at java.lang.System.loadLibrary(System.java:1669)
Этот файл .so находится в том же месте, что и другой, поэтому я не уверен, почему он не былнайденный.
Любые ваши идеи были бы очень благодарны!