Сбой Archos 101 Tablet System.load () при загрузке ndk lib - PullRequest
3 голосов
/ 09 декабря 2011

У меня есть приложение, которое имеет как Java, так и NDK (код C). Это приложение работает нормально на Motorola Xoom, но не работает на планшете Archos 101.

Вот код нарушения:

    static {
    try
    {
        System.loadLibrary("cube");
    }
    catch (Exception ex)
    {
        Log.d("scroll", ex.getMessage());
    }
}

Вот дамп logcat по ошибке:

DEBUG/dalvikvm(10198): Trying to load lib /data/data/com.gorglucks.cubendk/lib/libcube.so 0x45497b18
INFO/dalvikvm(10198): Unable to dlopen(/data/data/com.gorglucks.cubendk/lib/libcube.so): Cannot load library: link_image[1995]: failed to link libcube.so
WARN/dalvikvm(10198): Exception Ljava/lang/UnsatisfiedLinkError; thrown during Lcom/gorglucks/cubendk/Main;.<clinit>
WARN/dalvikvm(10198): Class init failed in newInstance call (Lcom/gorglucks/cubendk/Main;)
DEBUG/AndroidRuntime(10198): Shutting down VM
WARN/dalvikvm(10198): threadid=1: thread exiting with uncaught exception (group=0x4001d8a8)
ERROR/AndroidRuntime(10198): FATAL EXCEPTION: main
ERROR/AndroidRuntime(10198): java.lang.ExceptionInInitializerError
ERROR/AndroidRuntime(10198):     at java.lang.Class.newInstanceImpl(Native Method)
ERROR/AndroidRuntime(10198):     at java.lang.Class.newInstance(Class.java:1429)
ERROR/AndroidRuntime(10198):     at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
ERROR/AndroidRuntime(10198):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
ERROR/AndroidRuntime(10198):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
ERROR/AndroidRuntime(10198):     at android.app.ActivityThread.access$2300(ActivityThread.java:125)
ERROR/AndroidRuntime(10198):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
ERROR/AndroidRuntime(10198):     at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(10198):     at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(10198):     at android.app.ActivityThread.main(ActivityThread.java:4627)
ERROR/AndroidRuntime(10198):     at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(10198):     at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(10198):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
ERROR/AndroidRuntime(10198):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
ERROR/AndroidRuntime(10198):     at dalvik.system.NativeStart.main(Native Method)
ERROR/AndroidRuntime(10198): Caused by: java.lang.UnsatisfiedLinkError: Library cube not found
ERROR/AndroidRuntime(10198):     at java.lang.Runtime.loadLibrary(Runtime.java:461)
ERROR/AndroidRuntime(10198):     at java.lang.System.loadLibrary(System.java:557)
ERROR/AndroidRuntime(10198):     at com.gorglucks.cubendk.Main.<clinit>(Main.java:24)
ERROR/AndroidRuntime(10198):     ... 15 more

Моя библиотека C libcube.so находится в libs / armeabi / libcube.so и отображается в обозревателе проектов eclipse. Я подтвердил это, посмотрев в CubeNDK.apk.

Также я попытался загрузить библиотеку, используя:

System.load("/data/data/com.gorglucks.cubendk/lib/armeabi/libcube.so");

Это тоже не удалось.

Опять же, это отлично работает на Motorola Xoom. Вообще, работа с этим Archos 101 была очень расстраивающей. Драйвер USB не работает для меня на 64-битных ПК, но будет работать на старых 32-битных ПК.

Заранее спасибо Джерри

1 Ответ

0 голосов
/ 13 декабря 2011

В процессе исключения и поиска в документации android-ndk-r7 / docs / STABLE-APIS.html менеджер ресурсов недоступен на уровне API 8 (Froyo).

Это решаетмоя проблема со связью, но создает другую проблему:

Как вы получаете доступ к файлам в каталоге ресурсов из ndk без использования диспетчера активов?

...