android系统预编译so,主要介绍某个项目跟随系统一起编译如果makefile中如何添加so库...

主要介绍某个项目跟随系统一起编译如何通过makefile添加so库。

帮另外一个项目救火,需要用到百度定位的sdk,一个依赖的jar包,一个需要放到armeabi中的liblocSDK4.so库,百度lbs后台中创建访问密钥后设置里面可以不设置安全码,感谢@左啊提醒。

用eclipse debug或者eclipse签名导出APK都能正常定位,但跟随系统一起编译,则BDLocationListener的

public void onReceiveLocation(BDLocation location)

1

publicvoidonReceiveLocation(BDLocationlocation)

函数参数location.getLocType()始终为162,和百度的技术支持了解后知道162表示so库加载失败,之后就排查liblocSDK4.so为何加载失败。

stackoverflow之,在Android.mk中添加

Java

PRODUCT_COPY_FILES += $(LOCAL_PATH)/libs/armeabi/liblocSDK4.so:system/lib/liblocSDK4.so

1

PRODUCT_COPY_FILES+=$(LOCAL_PATH)/libs/armeabi/liblocSDK4.so:system/lib/liblocSDK4.so

表示将so库拷贝到系统的system/lib下面,makefile中该部分整体配置如下:

Java

LOCAL_STATIC_JAVA_LIBRARIES := android-support-v4 \

baidu-loc-sdk-v4

include $(BUILD_PACKAGE)

include $(CLEAR_VARS)

PRODUCT_COPY_FILES += $(LOCAL_PATH)/libs/armeabi/liblocSDK4.so:system/lib/liblocSDK4.so

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += baidu-loc-sdk-v4:libs/baidu-loc-sdk-v4.jar

include $(BUILD_MULTI_PREBUILT)

1

2

3

4

5

6

7

8

LOCAL_STATIC_JAVA_LIBRARIES:=android-support-v4\

baidu-loc-sdk-v4

include$(BUILD_PACKAGE)

include$(CLEAR_VARS)

PRODUCT_COPY_FILES+=$(LOCAL_PATH)/libs/armeabi/liblocSDK4.so:system/lib/liblocSDK4.so

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES+=baidu-loc-sdk-v4:libs/baidu-loc-sdk-v4.jar

include$(BUILD_MULTI_PREBUILT)

不过要使的PRODUCT_COPY_FILES生效,需要系统整体编译才可,mm单独编译该项目是无法生效的,可通过系统完整编译升级后在system/lib下查找是否存在liblocSDK4.so判断so库是否编译正确。

至于eclipse为什么放到libs的armeabi下面就能直接生效是因为这些工作adt都已经帮你完成了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值