今天想把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包 最终生 在Android开发过程中,有时我们需要从源码编译特定的jar包以供其他应用或服务使用。本篇将详细讲解如何在Android源码中编译指定的jar包,并介绍如何在应用程序中引用第三方jar包。 针对标题和描述中的问题,我们关注的是在`vendor/letv/frameworks/base/java`目录下的源码编译成`framework-letv.jar`。在Android.mk文件中,关键的改动在于: 1. `LOCAL_JACK_ENABLED := disabled`: 这一行至关重要,它禁用了Jack工具链,因为如果不这样做,默认情况下会生成`.jack`文件而不是我们需要的`.class`或`.jar`文件。Jack是Android用来处理Java源码的编译器,但它已不再被官方支持,因此我们需要禁用它以确保生成`.jar`包。 2. `#include $(BUILD_JAVA_LIBRARY)`: 注释掉这行,因为它用于构建常规的动态Java库。 3. `include $(BUILD_STATIC_JAVA_LIBRARY)`: 这一行用于构建静态Java库,即我们的目标——生成`.jar`文件。在编译完成后,原始的输出将是`javalib.jar`,你需要将其重命名为`framework-letv.jar`以满足需求。 接下来,我们讨论如何在Android应用程序中引用第三方jar包。假设你有一个名为`3part.jar`的第三方库,你需要在你的app的Android.mk文件中添加以下内容: ```makefile LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE_TAGS := user eng # 定义引用的jar包名称 LOCAL_STATIC_JAVA_LIBRARIES := lib3party # 引入第三方jar包 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib3party:libs/3part.jar include $(BUILD_PACKAGE) include $(CLEAR_VARS) LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib3party:libs/3part.jar # 注意:'lib3party'是别名,'3part.jar'是实际的jar包名 # jar包应放置在工程根目录的libs子目录下 include $(BUILD_MULTI_PREBUILT) ``` 在上述代码中: - `LOCAL_STATIC_JAVA_LIBRARIES := lib3party`定义了一个别名,我们可以随意选择,只要后续引用时保持一致。 - `LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := lib3party:libs/3part.jar`指定了别名(lib3party)和jar包的实际路径(相对于Android.mk文件的路径)。 要确保`3part.jar`位于工程的`libs`目录下,这样编译系统才能找到并正确打包它。完成这些步骤后,编译应用时,第三方jar包就会被包含进APK,并可供应用使用。 在Android源码中编译自定义jar包涉及对Android.mk文件的调整,特别是要禁用Jack工具链并使用`BUILD_STATIC_JAVA_LIBRARY`。而在应用程序中引用第三方jar包,需要在Android.mk文件中声明静态Java库,并提供正确的路径。理解这些操作对于进行定制化开发和集成外部库至关重要。



















- 粉丝: 4
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 2021-2022年收藏的精品资料软件工程课设商品库存信息管理系统.doc
- 2021年Java工程师培训心得体会范文.docx
- 2023年access题库答案.doc
- 系列单片机程序设计.pptx
- QC工具EXCEL制作方法.ppt
- C语言程序设计报告模板.doc
- 基因工程常规技术核酸提取纯化讲课文档(1).ppt
- 2022电子商务专业自我鉴定_.docx
- 电气工程与自动化学院星级宿舍评比细则.doc
- 现代通信技术基础蒋青主编第章讲课文档(1).ppt
- 大楼综合布线及机房建设方案V1..doc
- 关于中职计算机教学方法的探索(1).docx
- 软件项目新版(1).doc
- 软件售后服务中心管理制度(1)(1).doc
- 电子商务毕业实习报告(2)(1).doc
- 2021-2022年收藏的精品资料3、2项目管理机构配备情况.doc


