Android Studio将包含第三方jar的项目打成jar包

本文介绍如何在Android Studio中打包包含第三方库的SDK,解决生成的jar包缺失第三方库的问题,通过正确配置gradle文件,确保SDK能顺利集成到其他项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

AS 打包出含有第三方库的jar包

一、需求

有一个需求:输入一些字段,按照一定规则生成URL,然后再根据URL生成一个二维码图片。由于这个功能其他软件也会使用,因此需要将实现打包成一个SDK。

二、实现

之前没有打包过sdk,然后从网络找了教程,我是参考了AndroidStudio项目打包成jar这个篇博客,写的很详细。本地新建了项目MakeJar,把需要打包成jar包的代码放在了qrgeneratorlibrary中,如下图所示:
在这里插入图片描述

三、出现的问题及解决方案

问题1:生成的jar包中没有包含第三库

这个问题参考了博客:利用Gradle打包含第三方类库的jar包
按照博客的方法:
(1)首先按照如下的路径找到需要的jar包(涂掉的是自己的用户名):在这里插入图片描述
将jar包放到library的libs文件夹下(当时找到两个jar包,不知道使用哪一个,所以都放在了该目录下,实际只有第一个jar有用到,第二个包含了资源类的文件)。
在这里插入图片描述
(2)然后配置library下的gradle文件如下图:
在这里插入图片描述
最后两行代码一定不要漏掉!一开始我以为会默认会将自己模块的代码自动打包进去,打成jar后发现只包含第三方的代码。。。。

### 如何将GitHub上的Java项目JAR文件 要将GitHub上的Java项目JAR文件,通常可以按照以下方法操作: #### 使用Maven构建并生成可运行的JAR文件 如果该项目使用的是Maven作为构建工具,则可以通过执行特定命令来创建一个包含依赖项的JAR文件。此过程会自动处理项目的编译以及所有必要的依赖关系。 以下是具体的操作方式: 1. **克隆项目到本地** 首先通过Git命令或者手动下载ZIP的方式获取目标仓库的内容。 2. **安装所需的依赖** 执行`mvn clean install`命令以确保所有的依赖都被正确解析和加载。这一步还会触发测试阶段(如果有配置的话),从而验证代码质量。 3. **修改POM.xml文件(如有必要)** 如果希望最终得到可以直接运行的fat jar(即包含了所有外部库在内的单一jar文件),则需确认pom.xml中有如下插件定义部分: ```xml <build> <plugins> <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration> <archive> <manifest> <mainClass>fully.qualified.MainClass</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </execution> </executions> </plugin> </plugins> </build> ``` 4. **生成JAR文件** 接下来,在终端输入下面这条指令完成实际打动作: `$ mvn package assembly:single` 或者更简单的形式 `mvn clean package`. 成功之后会在target目录下发现类似这样的产物——`mvn-example-1.0-SNAPSHOT-jar-with-dependencies.jar`, 它就是我们需要的结果[^1]. #### 对于Gradle驱动下的工程实例化流程说明 当面对基于gradle管理的java应用,同样存在便捷途径达成相同目的: 调整build.gradle脚本内容如下所示: ```groovy apply plugin: 'java' archivesBaseName = 'myProject' task fatJar(type: Jar) { manifest { attributes 'Main-Class': 'com.example.Main' // 替换为主类路径名 } from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } with jar } ``` 随后只需简单调用一次`./gradlew fatJar`即可获得完整的输出物. 另外值得注意的一点在于某些特殊场景可能还需要额外引入第三方资源比如这样写入settings.gradle里头: ```groovy dependencies { implementation files('libs/*.jar') } [^2] ``` 对于Android Studio环境内的原生支持情况而言, 可能涉及到Eclipse ADT迁移过来的老版本解决方案提示检查是否存在libcocos2dx相关组件缺失状况等问题描述见参考资料[^3]. 最后提及一点关于bazel构建体系相关内容提到初次接入dagger框架候记得更新workspace文档声明远程地址链接指向官方release页面位置信息等等细节待补充完善[^4]. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值