Я собрал OpenSSL для Android (используя ndk-build) и связал его с моей программой.Компиляция и компоновка работают, но я получаю ошибку во время выполнения UnsatisfiedLinkError.Точнее говоря, программа ломается по этому коду:
public class TestActivity extends Activity
{ // load the library - name matches jni/Android.mk
static {
System.loadLibrary("crypto2");
System.loadLibrary("ssl2"); // <=BREAKS HERE!
System.loadLibrary("Test");
}
Она специально ломается при загрузке ssl2, поэтому кажется, что она смогла загрузить crypto2.Я думаю, мне нужно сказать ssl2, что он использует cryto2, я пытался сделать это в файле Android.mk, но это не помогло.
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := libcrypto2
LOCAL_SRC_FILES := OpenSSL/libcrypto2.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := libssl2
LOCAL_SRC_FILES := OpenSSL/libssl2.so
LOCAL_SHARED_LIBRARIES := libcrypto2
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS) # Here we give our module name and source file(s)
LOCAL_C_INCLUDES := D:/DevelopTools/OpenSSL-WIN32/include $(LOCAL_PATH)/../../../Framework/Applications/FW2Prototype $(LOCAL_PATH)/../../../Graphics/Libraries/Common $(LOCAL_PATH)/../../../Input/Libraries/Common $(LOCAL_PATH)/../../../Audio/Libraries/Common $(LOCAL_PATH)/../../../Audio/Libraries/NullAudio $(LOCAL_PATH)/../../../Network/Libraries/Common
LOCAL_MODULE := Test
LOCAL_SRC_FILES := Test.cpp Reference.cpp JNINetwork.cpp JNIGraphics2D.cpp JNIInput.cpp JNIAudio.cpp Applications/FatalWars2/FatalWars2.cpp /../../../Audio/Libraries/NullAudio/NullAudio.cpp
LOCAL_SHARED_LIBRARIES := libcrypto2 libssl2
include $(BUILD_SHARED_LIBRARY)
Есть идеи, что не так?
Спасибо