当前位置: 首页 > 编程笔记 >

在Android源码中编译出指定jar包的操作

颜阳炎
2023-03-14
本文向大家介绍在Android源码中编译出指定jar包的操作,包括了在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包的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。

 类似资料:
  • 有时,我们需要从源代码重新编译一个Kali包.幸运的是用APT下载源代码包,进行必要的修改后再用Debian工具重新编译是如此的简单.此例中,为了添加额外的Mifare Key硬编码到mifare格式化工具,我们将重新编译libfreefare这个包. 下载包的源代码 # Get the source package apt-get source libfreefare cd libfreefar

  • 有些情况下,比如我们自己从Github下载了最新的代码,或者自己临时修改了一点代码,想要编译后的Build文件夹的内容,需要自行编译源码,这里介绍一下编译的方法 下载源码之后,可以发现根目录存在一个gulpfile.js文件,编译源码就是使用 gulp 编译的成果有四部分, – 生成Apps文件夹,包括helloworld程序和沙盒Sandcastle – 编译后的部署环境下的Cesium文件夹

  • 问题内容: 我已经反编译了一个jar(可能出于调试目的)并希望重新编译它。 我已经使用了JAD和JD,并且由于goto指令而无法编译 例如 有没有简单的方法(或任何方法)来重新编译它?(除了手动重构和删除的外) 问题答案: 不,没有。在您的情况下,JD和JAD都无法正确地反编译类文件。“ goto”语句是有关实际程序流程的提示。 您可以直接与Java Decompiler团队联系,发送一个类文件,

  • Swift(5.3.2) 源码编译 编译环境 Big Sur 11.2(20D64) Python3 3.9.1 CMake 3.19.3 Ninja 1.10.2 Sccache 0.2.13 (可选) Xcode 12.4(12D4e) 第一次编译失败, CMake 版本为3.17.2, 之前本地编译OCLint时安装的一个版本, 如果编译的是更新的源码, 注意版本; Xcode版本与Swif

  • 主要内容:1.1 前期准备工作,1.2 jar包安装,1.3 编译源码1.1 前期准备工作 1. CentOS联网 配置CentOS能连接外网。Linux虚拟机ping www.baidu.com 是畅通的 注意:采用root角色编译,减少文件夹权限出现问题 2. jar包准备(hadoop源码、JDK8、maven、ant 、protobuf) (1)hadoop-2.7.2-src.tar.gz (2)jdk-8u144-linux-x64.tar.gz (3)

  • 下载并安装API 24源代码后,我看到在API 24中有更改的类中出现了大量编译器错误。 例如,AccessibilityService类在变量、方法、导入等方面有数百个“无法解析符号”错误。