Может ли одна общая библиотека загружать и вызывать функции из другой общей библиотеки?
У меня есть общая библиотека libDsmTestLib.so , которая использует другие общие библиотеки libDsmShared.so и libPINDsmShared.so
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := DsmTestLib
LOCAL_SRC_FILES := DSM_Library.cpp
LOCAL_LDLIBS := -lDsmShared
LOCAL_LDLIBS += -lPINDsmShared
include $(BUILD_SHARED_LIBRARY)
когда я создаю libDsmTestLib.so и хочу использовать его в моем java-приложении для Android, например:
package com.dsm;
import android.app.Activity;
import android.os.Bundle;
public class dsmTest extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
static {
try {
System.loadLibrary("DsmTestLib");
}
catch( UnsatisfiedLinkError e ) {
System.err.println("Native code library failed to load.\n" + e);
}
}
}
В блоке catch я получаю ошибку
Невозможно загрузить библиотеку: link_image [1962]:
33 не удалось загрузить нужную библиотеку
'libDsmShared.so' для
'LibDsmTestLib.so'
(load_library [1104]: библиотека
'libDsmShared.so' не найден)
Функция Loadlibrary не может найти библиотеку libDsmShared.so , которая использует мою основную библиотеку libDsmTestLib.so , Кто может сказать, почему? и что я могу сделать, чтобы решить эту проблему?
Дополнительная информация
У меня была статическая библиотека (.so, написанная на C ++) с функциональностью, которую я хочу использовать в своем приложении Java для Android, для этого я создаю файлы .cpp и .h, в которых я вызываю функцию из ранее созданной библиотеки.