2014-09-02 3 views
1

Я использую NDK в eclipse.java.lang.UnsatisfiedLinkError: Не удалось загрузить из загрузчика findLibrary возвращается null

Это мой NativeLib в Java:

public class NativeLib { 

public native String enCode(String src); 

static { 
    System.loadLibrary("HelloWorld"); 
} 

public native String deCode(String src); 
} 

Это источник C:

#include <string.h> 
#include <jni.h> 
#include <stdio.h> 

jstring Java_com_example_helloworld_NativeLib_enCode(JNIEnv* env, 
    jobject thiz, jstring src) { 
... 
return (*env)->NewStringUTF(env, result); 
} 

jstring Java_com_example_helloworld_NativeLib_deCode(JNIEnv* env, jobject thiz, 
    jstring src) { 
... 
return (*env)->NewStringUTF(env, result); 
} 

Мой проект работает нормально в ОС Android 4.2, но в Android 4.3 (планшетный ASUS K012) Это получаю ошибку как ниже

java.lang.UnsatisfiedLinkError: Couldn't load HelloWorld from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.helloworld-2.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.helloworld-2, /vendor/lib, /system/lib, /system/lib/arm]]]: findLibrary returned null

Может ли кто-нибудь мне помочь?

+0

и какой процессор находится внутри этого планшета? вы предоставили собственную библиотеку для этого процессора? – Selvin

+0

@ Селвин я не понимаю. Я забыл, что я использую свою библиотеку с витамином. Если я не использую витамин, он работает нормально. – Minato

+0

Как вы решили эту проблему? –

ответ

3

Возможно, это связано с тем, что вы не компилируете свой собственный код для всех платформ. В ASUS K012 работает процессор Intel, и это может быть причиной. Добавьте файл под названием application.mk в папку JNI и следующий параметр APP_ABI: = all

Это компилирует родную часть для всех платформ.

Смежные вопросы