毕业论文开发语言企业开发JAVA技术.NET技术WEB开发Linux/Unix数据库技术Windows平台移动平台嵌入式论文范文英语论文
您现在的位置: 毕业论文 >> 移动平台 >> 正文

android 调用第三方so 编译通过 提示找不到第三方so

更新时间:2012-11-15:  来源:毕业论文

android 调用第三方so 编译通过 提示找不到第三方so

有没有谁做过调用第三方so的啊,这个应该是个比较常规的问题,可是比较菜,网上查了好多关于这个的,自己写好了调用第三方so的代码,运动会加油稿 但是运行的时候总是提示找不到第三方的so。单独调用自己写的so是可以的,刚测试过,可以得到JNI的输出结果。
求大神知道啊。

Android.mk
LOCAL_PATH := $(call my-dir)
### Link libXXX.so
include $(CLEAR_VARS) 
LOCAL_MODULE := xxx
##
LOCAL_SRC_FILES := libxxx.so
 
include $(PREBUILT_SHARED_LIBRARY)
##
include $(CLEAR_VARS)
LOCAL_MODULE    := callxxx
LOCAL_SRC_FILES := callxxx.c
LOCAL_SHARED_LIBRARIES := xxx
##LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)

callxxx.c
#include <string.h>
#include <jni.h>
#include <dlfcn.h>

jobject (*xxx) (jobject, jint, jstring, jint);

JNIEXPORT jobject JNICALL Java_com_abc
  (JNIEnv * env, jobject thiz, jobject injob, jint type, jstring addr, jint num)
{
void *p;
p = dlopen("/data/data/com.a.abccc/lib/librecongi.so",RTLD_NOW);
xxx= dlsym(p,"xxx");

return (*xxx)(injob,type,addr,numofcandi);
}


JNIEXPORT jstring JNICALL Java_com_AddToList_testJNI
  (JNIEnv * env, jobject job)
{
return (*env)->NewStringUTF(env, "Hello from IME !");
}

static
{
System.loadLibrary("xxx") ;
System.loadLibrary("callxxx") ;
}
System.loadLibrary 的搜索路径由'java.library.path' 来决定
System.out.println('加载库时搜索的路径列表:\n'+System.getProperty('java.library.path'));
如果不在这个目录下肯定找不到
第三方so 放到 /system/lib 下测试一下 看能行不

第三方的so文件是在NDK 环境下编译的么?

设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©youerw.com 优尔论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。