У меня есть проект в Eclipse, который смешивает нативный и Java-код с использованием CDT и ADT.Это действительно просто - демонстрационный проект, как в android-ndk-r7 / samples / hello-jni
Мой Android.mk (в папке / jni):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := hlsdrm
LOCAL_SRC_FILES := hlsdrm.cpp
include $(BUILD_SHARED_LIBRARY)
Все отлично компилируется, я могу загрузить библиотеку hlsdrm
System.loadLibrary("hlsdrm");
и вызывать встроенные функции.Но где находится файл библиотеки?В любой из папок проекта нет общей библиотеки libhlsdrm.so.Как я мог читать, он должен создать папку "libs" и поместить в нее получившуюся библиотеку.
Кроме того, когда я пытаюсь перечислить библиотеки, которые используются процессом приложения, вызывая:
PackageManager pm = getPackageManager();
String applicationPackage = this.getApplicationInfo().packageName;
ApplicationInfo ai = pm.getApplicationInfo(applicationPackage, PackageManager.GET_SHARED_LIBRARY_FILES);
String[] soFiles = ai.sharedLibraryFiles;
, тогда переменная soFiles пуста ... Я попытался указать библиотеку с помощьюuses-library
значение в разделе приложения манифеста, но после этого ОС Android отказывается устанавливать это приложение и показывает ошибку INSTALL_FAILED_MISSING_SHARED_LIBRARY
.
Может кто-нибудь объяснить мне, как я могу получить мою общую библиотеку - физическую.так файл?
Почему sharedLibraryFiles
пусто, хотя библиотека загружается и можно вызывать собственный метод?
Как установить приложение, для которого требуется настраиваемая общая библиотека?