2016-12-11 3 views
-1

Я создаю приложение чата с помощью Alljoyn framework и получаю следующую ошибку. Кто-нибудь, пожалуйста, помогите мне. Банки alljoyn уже настроены !!!Не удалось загрузить alljoyn_java из загрузчика. Dalvik.system

FATAL EXCEPTION: main 
                       Process: com.example.vikesh.chat_application, PID: 4326 
                       java.lang.UnsatisfiedLinkError: Couldn't load alljoyn_java from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.vikesh.chat_application-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.vikesh.chat_application-1, /vendor/lib, /system/lib]]]: findLibrary returned null 
                        at java.lang.Runtime.loadLibrary(Runtime.java:358) 
                        at java.lang.System.loadLibrary(System.java:526) 
                        at com.example.vikesh.chat_application.AlljoynService.<clinit>(AlljoynService.java:1252) 
                        at java.lang.Class.newInstanceImpl(Native Method) 
                        at java.lang.Class.newInstance(Class.java:1208) 
                        at android.app.ActivityThread.handleCreateService(ActivityThread.java:2553) 
                        at android.app.ActivityThread.access$1800(ActivityThread.java:135) 
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                        at android.os.Looper.loop(Looper.java:136) 
                        at android.app.ActivityThread.main(ActivityThread.java:5017) 
                        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:779) 
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
                        at dalvik.system.NativeStart.main(Native Method) 

ответ

1

Вам необходимо поместить файл AllJoyn liballjoyn_java.so в свой проект. Например, в Android Studio, обычное место для этого файла: [your_project_dir]/приложение/SRC/Основной/jniLibs/armeabi/

armeabi часть пути выше при условии, что в AllJoyn .so файл который вы ранее создали, предназначен для «командного» процессора (набора команд armeabi).

Примечание. Когда я удалил файл .so из своего приложения, я получил ту же ошибку, о которой вы сообщаете. Когда я вернул файл .so, я все равно получил ту же ошибку. Мне пришлось удалить приложение с моего устройства Android, а в Android Studio мне пришлось очистить и перестроить приложение, прежде чем я смог пройти эту ошибку.

Некоторые другие вещи, чтобы рассмотреть ...

Убедитесь в вашем приложении, что вы звоните

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

Убедитесь, что liballjoyn_java.so ранее построенный соответствует набору команд центрального процессора вашего Android устройство. Например, вы можете проверить набор инструкций для Android с помощью такого приложения, как Droid Info. Если предположить, что это armeabi, то при построении основного проекта AllJoyn, вам нужно указать, как минимум, следующие переключатели в вашем SCons построить команду ....

scons BINDINGS="cpp,java,c" OS=android CPU=arm VARIANT=release 

Наконец, следующая ссылка Stackoverflow обсуждают общие причины ошибка, которую вы видите, может произойти: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader

+0

Это текущее местоположение Alljoyn libllijoyn_java.so, оно фактически находится в файле проекта в «C: \ Users \ vikesh \ Desktop \ Final Year Project \ Source_Code \ Chat_Application \ app \ src \ main \ jniLibs \ armeabi " –

+0

Я обновил свой ответ с дополнительной информацией. –

+0

Большое спасибо за ответ Sir –

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