为了账号安全,请及时绑定邮箱和手机立即绑定

如何将AAR转换为JAR

如何将AAR转换为JAR

MM们 2019-10-06 14:48:33
情况:我打算使用Java库,并且只有Maven存储库中的AAR文件,但我需要JAR文件。背景故事:我试图编译一个库,但是它的Gradle结构不稳定。因此,我要求一个已编译的jar文件,它的开发人员从某个Maven存储库中给了我一个aar文件(开发人员无法编译自己的项目)。Gradle配置是一团糟,它依赖于多个库,并且Gradle引发了一些异常。我试图在我的IDEA IDE中使用它,但是看不到它。一个库项目应该能够被编译成一个jar文件,对吗?问题:我应该怎么做才能将该AAR文件转换为JAR文件?
查看完整描述

4 回答

?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

.aar是一个标准的zip存档,与.jar中使用的相同。只需更改扩展名,并假设它没有损坏或任何其他操作,就可以了。


如果需要,可以将其提取到文件系统中,然后将其重新打包为jar。


1) Rename it to .jar

2) Extract: jar xf filename.jar

3) Repackage: jar cf output.jar input-file(s)


查看完整回答
反对 回复 2019-10-06
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

正如许多其他人指出的那样,仅从.aar文件中提取.jar并不能完全削减它,因为资源可能会丢失。

以下是对我有用的步骤(以Android为背景,如果您出于其他目的,则行驶里程可能会有所不同):

  1. 将.aar文件重命名为.zip并解压缩。

  2. 提取的文件夹是一个ADT项目,您可以对其进行一些小的修改即可将其导入Eclipse(请参见下文)!

  3. 在提取的文件夹中,将包含的文件classes.jar重命名为所需的名称(在本示例中为myProjectLib.jar),然后将其移动到提取的文件夹内的lib文件夹中。

  4. 现在,为了让Eclipse接受它,您需要将两个文件放入提取的文件夹根目录中:

    • 。项目

    • .classpath

  5. 为此,请在Eclipse中创建一个新的Android虚拟项目并复制文件,或从现有的Android项目复制。

  6. 打开.project文件,查找XML名称标签,然后将其内容替换为myProjectLib(或上面您所说的jar文件),然后保存。

  7. 现在,在Eclipse中,您可以从现有源文件->新建->项目-> Android项目..并指向提取的文件夹内容。

  8. 导入后,右键单击新创建的项目,选择“ 属性”->“ Android”,然后选中“ 是库”

  9. 在要使用该库的主项目中,也转到“ 属性”->“ Android”,然后将新添加的myProjectLib添加到依赖项列表中。


查看完整回答
反对 回复 2019-10-06
?
紫衣仙女

TA贡献1839条经验 获得超15个赞

对于那些想要自动执行此操作的人,我编写了一个两行的bash脚本,它执行以下两件事:


查找所有* .aar文件并从中提取classes.jar

重命名提取的classes.jar以使其像aar一样,但具有新的扩展名


find . -name '*.aar' -exec sh -c 'unzip -d `dirname {}` {} classes.jar' \;

find . -name '*.aar' -exec sh -c 'mv `dirname {}`/classes.jar `echo {} | sed s/aar/jar/g`' \;

而已!


查看完整回答
反对 回复 2019-10-06
?
潇湘沐

TA贡献1816条经验 获得超6个赞

AAR文件由的JAR文件和一些资源文件(它基本上是一个自定义文件扩展名的标准ZIP文件)。以下是转换步骤:

  1. 使用标准的zip提取程序提取AAR文件(将其重命名为* .zip使其更容易)

  2. 在解压缩的文件中找到classes.jar文件

  3. 根据需要将其重命名,然后在项目中使用该jar文件


查看完整回答
反对 回复 2019-10-06
  • 4 回答
  • 0 关注
  • 2167 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信