Я работаю с Android Studio и Android NDK. Моя папка "SRC/основные/JNI" содержит следующие файлы:Android NDK - Библиотека не найдена
- Android.mk
- Application.mk
- helloworld.cpp
Application.mk APP_ABI := all
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := HelloWorld
LOCAL_SRC_FILES := HelloWorld.cpp
include $(BUILD_SHARED_LIBRARY)
В моей Java коде, я загрузить библиотеку:
static{
System.load("HelloWorld");
}
Я бегу НДК-строить, как показано ниже, и она работает без ошибок: ndk-build -C src/main
build.gradle содержит:
sourceSets.main {
jniLibs.srcDirs 'src/main/libs'
jni.srcDirs = [] //disable automatic ndk-build call
}
libHelloWorld.so скомпилирован и скопирован в папки: app\src\main\libs\arm*\
Корень каталог app-debug.apk содержит каталог lib. libHelloWorld.so существует во всех подкаталогах (Lib \ рука *)
Когда я разворачивать и отлаживать приложения на 4 устройства LG Nexus, я получаю следующее сообщение об ошибке:
9-24 18:50:51.486 20352-20352/ndk.tests.firstndk E/art﹕ dlopen("HelloWorld", RTLD_LAZY) failed: dlopen failed: library "HelloWorld" not found
09-24 18:50:51.489 20352-20352/ndk.tests.firstndk D/AndroidRuntime﹕ Shutting down VM
09-24 18:50:51.491 20352-20352/ndk.tests.firstndk E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: ndk.tests.firstndk, PID: 20352
java.lang.UnsatisfiedLinkError: dlopen failed: library "HelloWorld" not found
at java.lang.Runtime.load(Runtime.java:331)
at java.lang.System.load(System.java:981)
at ndk.tests.firstndk.MainActivity.<clinit>(MainActivity.java:11)
at java.lang.reflect.Constructor.newInstance(Native Method)
Не могли бы вы помочь решить эту проблему? Почему моя родная библиотека не может быть загружена? Что не так с моей конфигурацией?
Спасибо, что работает! Такое долгое время тратилось на такую небольшую ошибку ... Большое вам спасибо! – ltu
добро пожаловать :) –