Ошибка неудовлетворенной ссылки Android Eclipse

Я пытаюсь создать проект Android, который загружает собственную библиотеку, специально открытую, используя скомпилированный файл .so, который я использовал для компиляции cygwin, в моем методе onCreate у меня есть следующий код

System.loadLibrary("openal.so");

и мои скомпилированные библиотеки находятся в моей папке libs/armeabi

мои два собственных файла кода состоят из файла .c, содержащего

#include "com_example_helloopenal_MainActivity.h"

JNIEXPORT jint JNICALL Java_com_example_helloopenal_MainActivity_play
(JNIEnv * env, jobject obj, jstring filename) {
return 0;
}

и файл .h, содержащий

/* DO NOT EDIT THIS FILE - it is machine generated */
#include <jni.h>
/* Header for class com_example_helloopenal_MainActivity */

#ifndef _Included_com_example_helloopenal_MainActivity
#define _Included_com_example_helloopenal_MainActivity
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class:     com_example_helloopenal_MainActivity
* Method:    play
* Signature: (Ljava/lang/String;)I
*/
JNIEXPORT jint JNICALL Java_com_example_helloopenal_MainActivity_play
(JNIEnv *, jobject, jstring);

#ifdef __cplusplus
}
#endif
#endif

метод play, вызываемый в onCreate и записанный в файле .c, должен возвращать 0 в журнале cat на этом этапе, но вместо этого приложение вылетает со следующим сообщением об ошибке.

01-20 16:11:51.299: E/AndroidRuntime(10842): java.lang.UnsatisfiedLinkError: не удалось загрузить openal.so из загрузчика dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com. example.helloopenal-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.helloopenal-2, /vendor/lib, /system/lib, /system/lib/arm]]]: возвращена findLibrary нулевой

Я новичок в разработке ndk, поэтому любое понимание причины или характера этой проблемы будет оценено по достоинству.

Обновление полного журнала ошибок после корректирующих действий в ответе Джорджа

01-20 17:01:06.299: E/memtrack(12000): Couldn't load memtrack module (No such file or directory)
01-20 17:01:06.299: E/android.os.Debug(12000): failed to load memtrack module: -2
01-20 17:01:07.479: E/ivpg-hwc(156): Lost 1 flips
01-20 17:01:07.479: E/ivpg-hwc(156): Lost 1 flips
01-20 17:01:07.939: E/NetworkScheduler.SchedulerReceiver(750): Invalid parameter app
01-20 17:01:07.939: E/NetworkScheduler.SchedulerReceiver(750): Invalid package name : Perhaps you didn't include a PendingIntent in the extras?
01-20 17:01:08.069: E/AppsCustomizePagedView(900): Widget ComponentInfo{com.kobobooks.android/com.kobobooks.android.widget.StoreWidgetProvider} can not fit on this device (1062, 1200)
01-20 17:01:08.359: E/memtrack(12024): Couldn't load memtrack module (No such file or directory)
01-20 17:01:08.359: E/android.os.Debug(12024): failed to load memtrack module: -2
01-20 17:01:08.549: E/dalvikvm(12046): Houdini dlopen("/data/app-lib/com.example.helloopenal-2/libopenal.so") failed: Can't load ARM library
01-20 17:01:08.549: E/AndroidRuntime(12046): FATAL EXCEPTION: main
01-20 17:01:08.549: E/AndroidRuntime(12046): Process: com.example.helloopenal, PID: 12046
01-20 17:01:08.549: E/AndroidRuntime(12046): java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app-lib/com.example.helloopenal-2/libopenal.so" has unexpected e_machine: 40
01-20 17:01:08.549: E/AndroidRuntime(12046):    at java.lang.Runtime.loadLibrary(Runtime.java:364)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at java.lang.System.loadLibrary(System.java:526)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at com.example.helloopenal.MainActivity.onCreate(MainActivity.java:15)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.app.Activity.performCreate(Activity.java:5231)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2218)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2304)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.app.ActivityThread.access$900(ActivityThread.java:142)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.os.Handler.dispatchMessage(Handler.java:102)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.os.Looper.loop(Looper.java:149)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at android.app.ActivityThread.main(ActivityThread.java:5097)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at java.lang.reflect.Method.invokeNative(Native Method)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at java.lang.reflect.Method.invoke(Method.java:515)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:610)
01-20 17:01:08.549: E/AndroidRuntime(12046):    at dalvik.system.NativeStart.main(Native Method)
01-20 17:01:08.939: E/NetworkScheduler.SchedulerReceiver(750): Invalid parameter app
01-20 17:01:08.939: E/NetworkScheduler.SchedulerReceiver(750): Invalid package name : Perhaps you didn't include a PendingIntent in the extras?
01-20 17:01:10.899: E/ivpg-hwc(156): Lost 1 flips
01-20 17:01:10.899: E/ivpg-hwc(156): Lost 1 flips
01-20 17:01:18.449: E/WindowManager(523): Starting window AppWindowToken{2252f9c0 token=Token{2269a480 ActivityRecord{2203eab0 u0 com.example.helloopenal/.MainActivity t28}}} timed out
01-20 17:01:19.089: E/AppsCustomizePagedView(900): Widget ComponentInfo{com.kobobooks.android/com.kobobooks.android.widget.StoreWidgetProvider} can not fit on this device (1062, 1200)
01-20 17:01:19.919: E/ivpg-hwc(156): Lost 1 flips
01-20 17:01:19.919: E/ivpg-hwc(156): Lost 1 flips
01-20 17:01:46.559: E/ivpg-hwc(156): Lost 1 flips

person coderon    schedule 20.01.2016    source источник


Ответы (1)


Вы должны называть это как System.loadLibrary("openal"); без расширения

person Jorge Mendez    schedule 20.01.2016
comment
Я все еще получаю ту же проблему, когда я делаю это изменение - person coderon; 20.01.2016
comment
Теперь я получаю другую ошибку, извините, новая ошибка выглядит следующим образом: 01-20 17:01:08.549: E/AndroidRuntime(12046): java.lang.UnsatisfiedLinkError: dlopen failed: /data/app-lib/com. В example.helloopenal-2/libopenal.so неожиданное значение e_machine: 40 - person coderon; 20.01.2016
comment
Не могу посмотреть полный журнал - person Jorge Mendez; 20.01.2016
comment
Убедитесь, что ваше устройство поддерживает архитектуру, в противном случае попробуйте добавить поддержку Как настроить таргетинг на несколько архитектур с помощью NDK? - person Jorge Mendez; 20.01.2016
comment
В верхней части моего файла Android.mk у меня есть эти строки TARGET_PLATFORM := android-4 ROOT_PATH := $(call my-dir) APP_ABI := all (Насколько я знаю и по ссылке, которую вы разместили, эта строка должна делать то, что вы предложили да ?) - person coderon; 20.01.2016