当前位置:编程学习 > wap >>

Android ndk 调用第三方so出现 Cannot load library: reloc_library ...cannot locate问题

需要在android应用中调用第三方动态库:ccc.so,
目录结构为
 jni
   --prebuild
     ---Andriod.mk
     ---ccc.so
   --Android.mk
   --com_xxx_jni.c
   --com_xxx_jni.h
   --Inteerface.h(ccc.so中的接口文件)
   --其他.c .h文件(用于实现逻辑处理)

prebuild下面的Android.mk文件内容为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ccc
LOCAL_SRC_FILES := ccc.so
TARGET_PRELINK_MODULES := false
include $(PREBUILT_SHARED_LIBRARY)

jni下面的Android.mk文件内容为:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE    := testJni
LOCAL_SRC_FILES := com_xxx_jni.c \
                   a.c\
                   b.c\
                   ...
LOCAL_EXPORT_C_INCLUDES := com_xxx_jni.h\
                           Interface.h\
   a.h\
           b.h\
                           ...
LOCAL_SHARED_LIBRARIES := ccc
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
LOCAL_LDLIBS := -llog
include $(BUILD_SHARED_LIBRARY)
include $(LOCAL_PATH)/prebuilt/Android.mk

ndk编译正常通过,
java的native接口load代码为:
static{
System.loadLibrary("ccc");
System.loadLibrary("testJni");
}
能够load ccc库,但是load testJni的时候就出现错误了,如下:
01-01 10:37:20.835: E/AndroidRuntime(493): Caused by: java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1311]:  1168 cannot locate 'Picc_Open'...
01-01 10:37:20.835: E/AndroidRuntime(493):  at java.lang.Runtime.loadLibrary(Runtime.java:434)
01-01 10:37:20.835: E/AndroidRuntime(493):  at java.lang.System.loadLibrary(System.java:554)
01-01 10:37:20.835: E/AndroidRuntime(493):  at com.hgz.testjni.NativeECInterface.<clinit>(NativeECInterface.java:18)

其中"Picc_Open"是Interface.h文件中的接口函数,具体实现是被封装在ccc.so中了。
有没有哪位朋友遇到过这种情况,或者知道这种情况如何解决? 


ndk reloc_library  cannot locate 第三方so --------------------编程问答-------------------- 如果ccc库中的函数只由testJni调用,没必要在static中加载ccc;还有确保ccc库有放到/out/.../system/ccc_in...下;拷贝动态库到out目录下,可以用如下方式:
include $(CLEAR_VARS)
LOCAL_PREBUILD_LIBS := $(LOCAL_PATH)/../lib/libkehdevRuntime.so
include $(BUILD_MULTI_PREBUILD)
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,