我已经成功编译了monosgen-2.0 for android。当我静态链接libmonosgen-2.0.a时,我的应用程序工作正常。
但是当我动态链接libmonosgen-2.0.so时,应用程序无效。 应用程序根本没有出现,eclipse不会给我任何信息。 它只是说致命的例外。
这是我的Android.mk:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := monosgen
LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libmonosgen-2.0.so
LOCAL_EXPORT_C_INCLUDES := F:/monoinstall-arm/include/mono-2.0/
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := hellodroid
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2
LOCAL_STATIC_LIBRARIES := android_native_app_glue
LOCAL_SHARED_LIBRARIES := monosgen
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
答案 0 :(得分:0)
好。我不知道问题是什么。但是,如果我通过dlopen加载libmonosgen-2.0.so并使用dlsym获取它的方法,它可以毫无问题地工作。
答案 1 :(得分:0)
你是如何为android plase编译libmonosgen的?我正在使用原始的单声道构建脚本,但是由此产生的libmonosgen-2.0.so与用于Android应用程序的Xamarin Mono附带的libmonosgen-2.0.so不同(主要是需要的库不同)。我正在使用这些配置选项:
- with-sgen = yes --disable-boehm --with-monodroid = yes --disable-mcs-build --with-sigaltstack = no --host = arm-none-linux-gnueabi --target =臂-NONE-Linux的gnueabi
这实际上可以像在静态编译中那样回答您的问题,在动态链接中不需要额外的动态库。