现在的位置: 首页 > 移动开发 > 正文

android JNI调用百度地图API,.so文件总是被自动删除的问题

2019年10月08日 移动开发 ⁄ 共 836字 ⁄ 字号 评论关闭

      
最近的一个Android项目,由于跟C语言打上了交道,需要调用第三方的.so文件。关于.so 、JNI这些东西其实我还基本属于那种不熟悉甚至连了解都算不上的水平。这次我是在别人的项目上添加新功能,也就是在别人已经有armeabi、jni等这些文件夹的情况下,我再添加些.so(百度地图的libBaiduMapSDK_v3_0_0.so和liblocSDK4b.so)。上一个项目中也用过百度地图,我就按着百度给的开发指南做的,把这些.so文件和需要的.jar直接复制进libs和其目录下,然后就成功了。这次也是这么做,但一
run as 项目,发现拷贝进去的.so文件都被自动删除了,于是开始在网上搜罗信息,按照指示,果然发现了这个项目中还有jni这个文件夹,里面还有包括android.mk在内的好些文件,跟我以前自己做的项目,构成不太一样。搞了一整天,终于在这里发现了解决的办法

点击打开链接。起初还是出了些差错,原因是lib前缀的有无造成的。

1、在新建目录jni/prebuilt,添加so包

2、在原来的jni/Android.mk添加


LOCAL_PATH
:= $(call my-dir)
02. 
03.include
$(CLEAR_VARS) 《---在这个后面田间
04. 
05. 
06.include
$(CLEAR_VARS)
07.LOCAL_MODULE
:= mppay
08.LOCAL_SRC_FILES
:= prebuilt/libmppay.so
09.include
$(PREBUILT_SHARED_LIBRARY)
10. 
11.include
$(CLEAR_VARS)
12.LOCAL_MODULE
:= entryex
13.LOCAL_SRC_FILES
:= prebuilt/libentryex.so
14.include
$(PREBUILT_SHARED_LIBRARY)

注意:这里prebuilt/ 之后的文件名是带lib的,起初我没有带,结果还是错的。



抱歉!评论已关闭.