问题
情况:
我打算使用Java库,我只有来自Maven存储库的aAAR文件,但我需要JAR文件。
背景故事:
我试图编译一个库,但它的Gradle结构不稳定。所以我要求一个编译好的jar文件,它的开发人员从一些Maven存储库给我一个aar文件(开发人员无法编译自己的项目)。 Gradle配置很乱,它依赖于多个库而Gradle抛出了一些异常。我试图在我的IDEA IDE中使用它,但它无法看到它。一个库项目应该能够编译成一个jar文件,对吧?
题:
我怎么做才能将AAR文件转换为JAR文件?
#1 热门回答(113 赞)
TheAARfile由aJAR文件和一些资源文件组成(它基本上是一个带有自定义文件扩展名的标准zip文件)。以下是转换的步骤:
使用标准zip提取提取AAR文件(将其重命名为* .zip以使其更容易)
在解压缩的文件中找到classes.jar文件
根据需要重命名,并在项目中使用该jar文件
#2 热门回答(17 赞)
.aar是一个标准的zip存档,与.jar中使用的相同。只需更改扩展名,并假设它没有损坏或任何东西,它应该没问题。
如果需要,可以将其解压缩到文件系统,然后将其重新打包为jar。
1) Rename it to .jar
2) Extract: jar xf filename.jar
3) Repackage: jar cf output.jar input-file(s)
#3 热门回答(14 赞)
正如许多其他人所指出的那样,只是从.aar文件中提取.jar并没有完全削减它,因为资源可能会丢失。
以下是适用于我的步骤(Android的上下文,如果你有其他用途,你的里程可能会有所不同):
将.aar文件重命名为.zip并解压缩。
解压缩的文件夹是一个ADT项目,你可以在Eclipse中导入并进行一些小的修改(见下文)!
在解压缩的文件夹中将包含的文件classes.jar重命名为你喜欢的任何内容(在此示例中为myProjectLib.jar),并将其移动到解压缩文件夹中的lib文件夹中。
现在为了让Eclipse接受它,你需要将两个文件放入解压缩的文件夹根目录:.project .classpath
为此,在Eclipse中创建一个新的Android虚拟项目并复制文件,或从现有的Android项目复制。
打开.project文件并查找XML名称标签,并用myProjectLib(或上面你称之为jar文件的任何内容)替换它的内容并保存。
现在在Eclipse中,你可以从现有源文件 - >新建 - >项目 - > Android项目..并指向提取的文件夹内容。
导入后右键单击新创建的项目,选择Properties - > Android,然后选中Is Library。
在你要使用库的主项目中,还要转到属性 - > Android并将新添加的myProjectLib添加到依赖项列表中。