我已經將Assimp庫構建爲共享庫。我已經將它包含在我的Android ndk項目中,並且構建正常,但是當我加載它時,出現以下錯誤: 無法加載本機庫:My-Native-Activity。從Android本地活動加載第三方共享庫
(也許我應該補充一點,當我沒有包含庫並且已經檢查了apk和設備時,我的活動工作正常;庫正被添加到libs文件夾並安裝在設備的/ data/data/my-app/lib)
我已經做了很多的閱讀,看來解決這個問題的唯一方法是在啓動我的本地活動之前使用System.loadLibrary加載它們。我想我更喜歡在採取這種方法之前使用dlopen動態加載它們。
我是否正確地假設Android不會自動加載共享庫我的本機活動(即我的共享庫)依賴於?
我會建立它作爲一個靜態庫,但它已經超過54Mb這將無法正常工作。
這是我的Android.mk: 我試過在LOCAL_LDLIBS中添加-lassimp。我不確定這是否正確,但沒有任何區別。
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := assimp
LOCAL_SRC_FILES := libassimp.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := native-activity
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv2
LOCAL_STATIC_LIBRARIES := android_native_app_glue
LOCAL_SHARED_LIBRARIES := assimp
LOCAL_CPPFLAGS += -march=armv7-a -mfloat-abi=softfp
LOCAL_CFLAGS := $(LOCAL_CPPFLAGS)
TARGET_ARCH_ABI := armeabi-v7a
LOCAL_C_INCLUDES += $(LOCAL_PATH)
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
我正在解決這個問題。我可以看到我的共享.so庫出現在數據文件夾中。然而,android_main永遠不會被調用,如果我編譯鏈接共享它的主庫只是不會加載。 – Halsafar 2012-06-05 23:07:11
你有沒有得到assimp在Android上工作?你可以把一些示例代碼放在github上嗎?我無法從資產目錄加載。 Assimp允許實現你自己的IOSystem和IOStream,但是我無法實現它!事務處理! – 2013-06-07 09:11:22