LOCAL_PATH:=$(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := cal
LOCAL_SRC_FILES := ./libcal.so

LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../sum/jni/

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := call

LOCAL_SRC_FILES:= \
call.cpp
(warning (LOCAL_SRC_FILES))

LOCAL_LDLIBS := -llog -lz -lm
$(warning aaa)
LOCAL_SHARED_LIBRARIES := cal #这里记得加上

APP_ABI := armeabi-v7a
APP_PLATFORM := android-14
LOCAL_MODULE_TAGS := optional

include $(BUILD_EXECUTABLE)
采用这种方法只能是在存在android代码情况下才能用,也就是System.loadLibrary(“cal”); System.loadLibrary(“call”);这个时候才能用,如果libcall.so变成了一个可执行程序”call”,那么不能这样只写,运行时会出现找不到第三方库, 原因是第三方库的路径并不在系统搜索路径下面,Android.mk中到现在我也不知道怎么指定一个搜索路径, 在LOCAL_LDLIBS后面加上-L./也不管用。

改进方法直接采用动态加载第三方库,这样写mk的时候不需要写任何和第三方有关的东西(需要头文件的话,另算),然后在dlopen的时候写一个绝对路径:

if((handle = dlopen("/data/libcal.so", RTLD_NOW)) == NULL) {        LOGE("dlopen - %sn", dlerror());        exit(-1);}

这样就不会出现找不到库的问题了

更多相关文章

  1. Android代码实现关机重启
  2. Android路径大全
  3. 15、android 常用文件路径备忘
  4. android studio 56 下载网络歌曲 代码
  5. Android为Notification加上一个进度条
  6. Android(安卓)面试之横竖屏切换的Activity生命周期
  7. Android(安卓)O(android 8.1) SYSTEM_UID应用无法使用FileProvider
  8. Android拍照、录像、录音代码范例
  9. android从网络获取图片以及异步加载图片

随机推荐

  1. web前端怎么获取cookie?新手前端开发者需
  2. 我,大厂离职,拿着千万美元融资搞了个近乎全
  3. 在iPhone 和 iPad苹果三件套办公应用中如
  4. 前端技巧:遍历数组都有哪些方式呢?
  5. 将S3设置为类SFTP服务用于数据上传
  6. 什么叫编程?什么人能学编程?
  7. 换IP
  8. js文件中如何读取app.ux中的全局变量
  9. 防劣化机制、向前兼容...今日头条前端架
  10. 6、小型企业无线网部署(案例2):三个无线常见