最近在做项目中遇到这样的问题。
如下步骤:
1. 由C程序生成的SO库(libA.so)。
2. 再做一个so库(libB.so),里面程序会调用之前的so库(libA.so)的API函数。
3. Android做成NDK工程调用so库(libB.so)。
文件Android.mkLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := BLOCAL_SRC_FILES := Jni.c \
B.c LOCAL_C_INCLUDES := \
$(JNI_H_INCLUDE)LOCAL_LDLIBS := -ldl -llog include $(BUILD_SHARED_LIBRARY)
文件B.c中使用dlopen调用库A的函数。
现在我的方法是用绝对路径来调用,即参数1:"/data/data/[proj name]/lib/libA.so"
想问的是,用相对路径应该怎么调用?我感觉是把当前Android工程的路径加到LD_LIBRARY_PATH这个环境变量里,可就是不知道怎么做。
如下步骤:
1. 由C程序生成的SO库(libA.so)。
2. 再做一个so库(libB.so),里面程序会调用之前的so库(libA.so)的API函数。
3. Android做成NDK工程调用so库(libB.so)。
文件Android.mkLOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := BLOCAL_SRC_FILES := Jni.c \
B.c LOCAL_C_INCLUDES := \
$(JNI_H_INCLUDE)LOCAL_LDLIBS := -ldl -llog include $(BUILD_SHARED_LIBRARY)
文件B.c中使用dlopen调用库A的函数。
现在我的方法是用绝对路径来调用,即参数1:"/data/data/[proj name]/lib/libA.so"
想问的是,用相对路径应该怎么调用?我感觉是把当前Android工程的路径加到LD_LIBRARY_PATH这个环境变量里,可就是不知道怎么做。
解决方案 »
- Menu背景的半透明效果是怎么实现的?
- Connection with adb was interrupted, and attempts to reconnect have failed.
- 求一个使用ksoap包然后自己重写的超时方法。。。具体点的。。谢谢。。
- 关于intent跳转的问题,实在找不出哪里错了
- Android3.0下Fragment的问题
- Android怎么操作SqlanyWhere数据库
- 有关控件问题
- Anidroi中如何实现图片的动画效果
- android xmpp 创建聊天室报错
- PopupWindow.setSplitTouchEnabled(true);是什么意思?
- android应用中使用到文件??? 不是SD卡中,而是打包在apk中的文件!
- 怎么实现修改短信中心号码?
dlopen的第一个参数应该怎么写?
或许可以采用折中的方法,通过调用api来查询current path,然后和相对路径组合成绝对路径来给
dlopen使用
想问下获取当前路径的api是什么函数?
System.loadlibrary("hello");and the libhello.so should place in right folder.
现在我的方法是用绝对路径来调用,即参数1:"/data/data/[proj name]/lib/libA.so"
请问楼主的这一步在eclipse编译工程时,把libA.so放在了哪个目录,谢谢,急用