这篇文章主要介绍了在Android源码中编译出指定jar包的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
今天想把android源码/vendor/letv/frameworks/base/java下的源码编译成 framework-letv.jar供乐乐语音客户端使用,编译完后,发现jar包文件虽然生成了,但包里面并没有相关的源码class文件,无法正常使用。
经过请教加研究发现,Android.mk文件需要添加选项如下:
54 LOCAL_JACK_ENABLED := disabled # important!
55 #include $(BUILD_JAVA_LIBRARY)
56 include $(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 := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := user eng
########################################
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包的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程学习网。
本文标题为:在Android源码中编译出指定jar包的操作
基础教程推荐
- iOS开发使用XML解析网络数据 2022-11-12
- Android实现短信验证码输入框 2023-04-29
- iOS中如何判断当前网络环境是2G/3G/4G/5G/WiFi 2023-06-18
- Flutter进阶之实现动画效果(三) 2022-10-28
- iOS开发 全机型适配解决方法 2023-01-14
- iOS Crash常规跟踪方法及Bugly集成运用详细介绍 2023-01-18
- IOS获取系统相册中照片的示例代码 2023-01-03
- MVVMLight项目Model View结构及全局视图模型注入器 2023-05-07
- Android开发Compose集成高德地图实例 2023-06-15
- Android Compose自定义TextField实现自定义的输入框 2023-05-13