.jar文件参与android源码编译

本文介绍了如何在Android源码编译中处理.jar文件,强调了在Eclipse与源码编译的不同之处。在源码编译时,需要在Android.mk文件中明确指定.jar包路径,通常推荐将其放入libs目录下,并通过LOCAL_STATIC_JAVA_LIBRARIES和LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES进行配置,以避免编译和运行时出现NoClassDefFoundError错误。
摘要由CSDN通过智能技术生成

.jar文件在Elipse 中使用方法想必大家都比较熟悉:

1,右键包名,选择properties

2,在弹出菜单中选择 Java Build Path

3,在Libraries 选项卡下选择add external jars 

4,接下来的操作没有必要细说了。


但是在源码下编译时需要修改Android.mk,因为在Eclipse下,Eclipse帮我们处理了编译路径问题。

在源码编译下,必须注意的一点是:.jar包的路径必须在Android.mk文件中指明。下面的例子是直接放到和Android.mk同级目录下,如果不在这个目录,需要指明。之前看别人写的文档说是必须放到和Android.mk同级目录下,这种说法是不确切的。直接放到和Android.mk同级目录下的坏处是:eclipse在编译时没有问题,但是运行是会报错:java.lang.NoClassDefFoundError  .因为在android高级版本中库文件必须放到libs目录下。所以我们最好不要把.jar放到Android.mk同级目录,把它放到libs下,Android.mk中这样写:LACAL_PREBUILT_STATIC_JAVA_LIBRARIES:= lib3party:/libs/jxi.jar,多一个/libs/

Android.mk文件中需要作的修改是下面代码中的斜体加粗部分:


LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_STATIC_JAVA_LIBRARIES := lib3party
LOCAL_SRC_FILES := $(call all-java-files-under,src) \
src/com/sprdsrt/base/core/IService.aidl \
src/com/sprdsrt/base/core/ITaskCallback.aidl


LOCAL_PACKAGE_NAME := SRT
LOCAL_MODULE_PATH := $(TARGET_OUT)/preloadapp
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib3party:jxl.jar

include $(BUILD_MULTI_PREBUILT)
# Use the following include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))

----------------------------------------------------------------------------

重点是:

LOCAL_STATIC_JAVA_LIBRARIES := lib3party

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib3party:jxl.jar

lib3party是随便取的名字,只要两句代码中一致即可。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值