Tôi có một dự án Android có hoạt động gốc. Hoạt động gốc này sử dụng thư viện được chia sẻ có tên "chính" (tệp libmain.so) để bắt đầu. (với mã số của ndk/mẫu/hoạt động gốc)Cách sử dụng thư viện được chia sẻ trong hoạt động gốc
Ứng dụng này hoạt động tốt.
"chính" mô-đun Android.mk file:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := main
LOCAL_SRC_FILES := main.cpp
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM
LOCAL_STATIC_LIBRARIES := android_native_app_glue game
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
Bây giờ tôi muốn thêm một thư viện chia sẻ (ví dụ như một công cụ trò chơi) được sử dụng bởi thư viện "chính". Tôi đã xây dựng một mô-đun "trò chơi" (libgame.so).
Nhưng khi tôi liên kết "chính" với "trò chơi", như thế này:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := main
LOCAL_SRC_FILES := main.cpp
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../../../game
LOCAL_LDLIBS := -llog -landroid -lEGL -lGLESv1_CM
LOCAL_LDLIBS += $(LOCAL_PATH)/../../libs/$(TARGET_ARCH_ABI)/libgame.so
LOCAL_STATIC_LIBRARIES := android_native_app_glue game
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
với mã không có thay đổi!
ứng dụng không khởi động được nữa và tôi có lỗi này trong Logcat:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mycompany.myproject/android.app.NativeActivity}: java.lang.IllegalArgumentException: Unable to load native library: /data/data/com.mycompany.myproject/lib/libmain.so
vụ tai nạn này là do cách thêm liên kết đến một thư viện chia sẻ ...
Tại sao liên kết đến một thư viện chia sẻ làm cho ứng dụng không tải (lỗi)?
Tôi làm cách nào để sử dụng thư viện được chia sẻ trong dự án android gốc (no-java/native-activity)?
(Tôi cho rằng điều đó có thể xảy ra ... nếu không hoạt động gốc rất hạn chế ...)
Cảm ơn! :)
Cảm ơn! Nhưng, bạn có chắc không? Bạn đã thử điều này chưa? Tôi đã thử điều này và thay đổi thứ tự ... vấn đề là như nhau (lỗi) [http://pastie.org/3308037](http://pastie.org/3308037) – Gaetan
Tôi gặp vấn đề tương tự như bạn. Điều này không khắc phục được. – Halsafar
Có, câu trả lời của tôi không chính xác. Đây được coi là lỗi: http://code.google.com/p/android/issues/detail?id=28329 Giải pháp đơn giản sẽ là lớp con NativeActivity với hoạt động trống chỉ có System.loadLibrary() gọi để tải tất cả thư viện cần thiết . –