- 论坛徽章:
- 11
|
1. 使用了 native_activity 例子, 生成了该 so
2. 在 native_activity 代码中调用了另一个 so 中的函数
3. 发现 native_activity load 失败:
ava.lang.IllegalArgumentException: Unable to load native library native-activity.so; 但将第二个so 库去掉, 则可以加载, 因此问题出在第二个 so
4. adb shell 发现, 两个 so 在同一个文件夹下:
shell@maguro:/ $ cd /data/app-lib/com.example.native_activity-1/
shell@maguro:/data/app-lib/com.example.native_activity-1 $ ls
libmm.so
libnative-activity.so
怀疑是 PATH 问题, 于是打印 PATH 得到:
I/zylthinking(26945): /sbin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
android.mk 是这样写的:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mm
LOCAL_SRC_FILES := lib/libmm.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
#LOCAL_CFLAGS += -std=c99
LOCAL_MODULE := native-activity
LOCAL_SRC_FILES := main.c
LOCAL_SHARED_LIBRARIES := lib/libmm
LOCAL_LDLIBS := -L./lib -llog -landroid -lEGL -lGLESv1_CM -lmm
LOCAL_STATIC_LIBRARIES := android_native_app_glue
include $(BUILD_SHARED_LIBRARY)
$(call import-module,android/native_app_glue)
请问我怎么做, 才能让 libnative-activity.so 找到 libmm.so |
|