我有一个带有原生活动的Android项目.此本机活动使用名为"main"(libmain.so文件)的共享库进行启动.(代码为ndk/samples/native-activity)
这个程序工作正常.
"main"模块Android.mk文件:
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)
Run Code Online (Sandbox Code Playgroud)
现在我想添加"main"库使用的另一个共享库(例如游戏引擎).我已经构建了一个"游戏"模块(libgame.so).
但是当我将"主要"与"游戏"联系起来时,就像这样:
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)
Run Code Online (Sandbox Code Playgroud)
代码没有变化!
应用程序不再启动,我在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
Run Code Online (Sandbox Code Playgroud)
此崩溃是由于添加到共享库的链接...
为什么链接到共享库会导致应用程序无法加载(崩溃)? …