如何将AAR转换为JAR

情况:


我打算使用Java库,并且只有Maven存储库中的AAR文件,但我需要JAR文件。


背景故事:


我试图编译一个库,但是它的Gradle结构不稳定。因此,我要求一个已编译的jar文件,它的开发人员从某个Maven存储库中给了我一个aar文件(开发人员无法编译自己的项目)。Gradle配置是一团糟,它依赖于多个库,并且Gradle引发了一些异常。


我试图在我的IDEA IDE中使用它,但是看不到它。一个库项目应该能够被编译成一个jar文件,对吗?


问题:


我应该怎么做才能将该AAR文件转换为JAR文件?


MM们
浏览 2169回答 4
4回答

慕婉清6462132

.aar是一个标准的zip存档,与.jar中使用的相同。只需更改扩展名,并假设它没有损坏或任何其他操作,就可以了。如果需要,可以将其提取到文件系统中,然后将其重新打包为jar。1) Rename it to .jar2) Extract: jar xf filename.jar3) Repackage: jar cf output.jar input-file(s)

米琪卡哇伊

正如许多其他人指出的那样,仅从.aar文件中提取.jar并不能完全削减它,因为资源可能会丢失。以下是对我有用的步骤(以Android为背景,如果您出于其他目的,则行驶里程可能会有所不同):将.aar文件重命名为.zip并解压缩。提取的文件夹是一个ADT项目,您可以对其进行一些小的修改即可将其导入Eclipse(请参见下文)!在提取的文件夹中,将包含的文件classes.jar重命名为所需的名称(在本示例中为myProjectLib.jar),然后将其移动到提取的文件夹内的lib文件夹中。现在,为了让Eclipse接受它,您需要将两个文件放入提取的文件夹根目录中:。项目.classpath为此,请在Eclipse中创建一个新的Android虚拟项目并复制文件,或从现有的Android项目复制。打开.project文件,查找XML名称标签,然后将其内容替换为myProjectLib(或上面您所说的jar文件),然后保存。现在,在Eclipse中,您可以从现有源文件->新建->项目-> Android项目..并指向提取的文件夹内容。导入后,右键单击新创建的项目,选择“ 属性”->“ Android”,然后选中“ 是库”。在要使用该库的主项目中,也转到“ 属性”->“ Android”,然后将新添加的myProjectLib添加到依赖项列表中。

紫衣仙女

对于那些想要自动执行此操作的人,我编写了一个两行的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`' \;而已!

潇湘沐

该AAR文件由的JAR文件和一些资源文件(它基本上是一个自定义文件扩展名的标准ZIP文件)。以下是转换步骤:使用标准的zip提取程序提取AAR文件(将其重命名为* .zip使其更容易)在解压缩的文件中找到classes.jar文件根据需要将其重命名,然后在项目中使用该jar文件
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java