在Android源码中编译出指定jar包的操作
今天想把android源码/vendor/letv/frameworks/base/java下的源码编译成framework-letv.jar供乐乐语音客户端使用,编译完后,发现jar包文件虽然生成了,但包里面并没有相关的源码class文件,无法正常使用。
经过请教加研究发现,Android.mk文件需要添加选项如下:
54LOCAL_JACK_ENABLED:=disabled#important! 55#include$(BUILD_JAVA_LIBRARY) 56include$(BUILD_STATIC_JAVA_LIBRARY)#编译jar包
最终生成了javalib.jar,改名为framework-letv.jar即可。注意:如果没有指定LACAL_JACK_ENABLED选项,则默认是enabled,将会生成classes.jack文件,不会产生classes.jar包!
另外补充点:在某一应用程序中有时候需要引用第三方jar包,那么怎么才能在编译app的时候把该jar包引入进入呢?
在该app下的Android.mk文件中添加如下语句:
LOCAL_PATH:=$(callmy-dir) include$(CLEAR_VARS) LOCAL_MODULE_TAGS:=usereng ######################################## LOCAL_STATIC_JAVA_LIBRARIES:=lib3party//定义引用名 ######################################## .... include$(BUILD_PACKAGE) ############################################################### include$(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:=lib3part:libs/3part.jar//引用名:jar包名 include$(BUILD_MULTI_PREBUILT) ################################################################
添加jar包,关键在LOCAL_STATIC_JAVA_LIBRARIES:=libarity和LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES:=libarity:lily.jar这两句。
libarity为jar包的别名,可以随便取,只要与下面相对应就行。但是后面冒号后面的那个jar包名字就必须写你需要引入的jar包名字。
jar包应该放在工程的根目录下,也就是与你要编译的app的src,res,Android.mk文件同级的目录。
以上这篇在Android源码中编译出指定jar包的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。