Ошибка «libsample.so» «Не найдена» при попытке использовать более одного cpp в Android JNI? ⇐ C++
-
Anonymous
Ошибка «libsample.so» «Не найдена» при попытке использовать более одного cpp в Android JNI?
Я столкнулся с проблемой при попытке скомпилировать два файла C++, capplication4.cpp и sample.cpp, в моем проекте Android с использованием JNI и CMake. Два файла C++ находятся в том же каталоге, что и CMakeLists.txt. Файлы cpp в основном возвращают строку с помощью jni и работают правильно. Мой CMakeLists.txt выглядит следующим образом:
cmake_minimum_required (ВЕРСИЯ 3.22.1) проект("capplication4") add_library(${CMAKE_PROJECT_NAME} ОБЩИЙ # Перечислить исходные файлы C/C++ с относительными путями к этому CMakeLists.txt. образец.cpp capplication4.cpp) target_link_libraries(${CMAKE_PROJECT_NAME} # Список библиотек, ссылающихся на целевую библиотеку андроид бревно) Я загружаю две библиотеки в отдельные классы Java. Первый класс, загружающий capplication4, работает как положено. Однако второй класс, который использует почти идентичный код для загрузки образца, аварийно завершает работу и выдает следующую ошибку:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.capplication4-1kzsYruP0tDej6JvfkG1zw==/base.apk"],nativeLibraryDirectories=[/data /app/com.example.capplication4-1kzsYruP0tDej6JvfkG1zw==/lib/arm, /data/app/com.example.capplication4-1kzsYruP0tDej6JvfkG1zw==/base.apk!/lib/armeabi-v7a, /system/lib, /system /vendor/lib]]] не удалось найти "libsample.so"
Есть ли ошибка в CmakeLists.txt?
Я столкнулся с проблемой при попытке скомпилировать два файла C++, capplication4.cpp и sample.cpp, в моем проекте Android с использованием JNI и CMake. Два файла C++ находятся в том же каталоге, что и CMakeLists.txt. Файлы cpp в основном возвращают строку с помощью jni и работают правильно. Мой CMakeLists.txt выглядит следующим образом:
cmake_minimum_required (ВЕРСИЯ 3.22.1) проект("capplication4") add_library(${CMAKE_PROJECT_NAME} ОБЩИЙ # Перечислить исходные файлы C/C++ с относительными путями к этому CMakeLists.txt. образец.cpp capplication4.cpp) target_link_libraries(${CMAKE_PROJECT_NAME} # Список библиотек, ссылающихся на целевую библиотеку андроид бревно) Я загружаю две библиотеки в отдельные классы Java. Первый класс, загружающий capplication4, работает как положено. Однако второй класс, который использует почти идентичный код для загрузки образца, аварийно завершает работу и выдает следующую ошибку:
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/com.example.capplication4-1kzsYruP0tDej6JvfkG1zw==/base.apk"],nativeLibraryDirectories=[/data /app/com.example.capplication4-1kzsYruP0tDej6JvfkG1zw==/lib/arm, /data/app/com.example.capplication4-1kzsYruP0tDej6JvfkG1zw==/base.apk!/lib/armeabi-v7a, /system/lib, /system /vendor/lib]]] не удалось найти "libsample.so"
Есть ли ошибка в CmakeLists.txt?
Мобильная версия