当前位置: 代码迷 >> Android >> Android NDK编译已有的C++实现的协议库文件-
  详细解决方案

Android NDK编译已有的C++实现的协议库文件-

热度:93   发布时间:2016-04-27 22:34:36.0
Android NDK编译已有的C++实现的协议库文件--求助
Android.mk已经写好,NDK也已经配置好。自己写的代码可以用JNI 调用本地方法,但是调用一个用C/C++ 实现的协议库的时候却没有NDK的编译信息,当然也没有产生预期的.so文件。有没有遇到同样问题的大神呢?求助 》》》》》
------解决思路----------------------
不知道这个对你有没有用:http://blog.csdn.net/qq_16064871/article/details/45110909
------解决思路----------------------
LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_CFLAGS += -D_DEBUG  -fexceptions
#LOCAL_CFLAGS +=  -fexceptions 
 
LOCAL_MODULE    := myTest

LOCAL_ALLOW_UNDEFINED_SYMBOLS := true

LOCAL_C_SHARED_SRC := ../../src
LOCAL_C_INCLUDES  := ../../../include \
$(LOCAL_C_SHARED_SRC)

LOCAL_SRC_FILES := $(LOCAL_C_SHARED_SRC)/View.cpp \
$(LOCAL_C_SHARED_SRC)/pkb.cpp \
$(LOCAL_C_SHARED_SRC)/CTest.cpp \
 myTest.cpp 

LOCAL_SHARED_LIBRARIES := mCS  #第3方SO
LOCAL_LDLIBS += -llog 

include $(BUILD_SHARED_LIBRARY)
include $(LOCAL_PATH)/prebuilt/Android.mk

# #########################
#prebuilt/Android.mk:这是另一个文件了
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mCS
LOCAL_SRC_FILES := libmCS.so    #第3方SO
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := mApi
LOCAL_SRC_FILES := libmApi.so   #第3方SO
include $(PREBUILT_SHARED_LIBRARY)
------解决思路----------------------
思路:
Java调用JNI时,JNI目录下的Android.mk指定了编译的源码、链接库;
JNI/prebuilt/Android.mk指定了要把第三方SO文件(可以是多个SO文件)加入到APK中。
  相关解决方案