【问题标题】:how to create a jar file from android studio如何从android studio创建一个jar文件
【发布时间】:2015-08-27 05:09:50
【问题描述】:

我有一个相当最新版本的android studio,我在一个基本上应该是一个库的项目下创建了一个模块,当我构建它时,它会创建一个“.aar”文件,我想要的是.jar文件,因为这个库也应该与 eclipse 一起使用。

该库也包含活动,有什么方法可以创建一个我可以在 Eclipse 以及 Android Studio 上使用的 .jar 文件?

我已经创建了这个模块并尝试构建,结果它生成了 .aar 文件而不是 .jar 文件。

【问题讨论】:

  • 看到这个链接你就明白了stackoverflow.com/questions/21712714/…
  • @Allu 已经看到用户想要为其 java 代码而不是整个模块创建 jar 的链接,在我的情况下,我也有资源
  • 您不能在 JAR 中捆绑资源。这就是 AAR 文件的用途。

标签: java android jar aar


【解决方案1】:

我找到了一种使用 Gradle 2.2.1 的简​​单方法:

task jar(type: Jar, dependsOn: 'assembleRelease') {
    from fileTree(dir: 'build/intermediates/classes/release')
}

把它放在你的库模块中。 它会将其编译为发布版本并在以下位置生成 JAR 文件:build/libs

bash gradlew jar 或使用您的 IDE 来定位 jar Gradle 任务。

【讨论】:

  • 添加资源怎么样?还有一些第三方库?
  • JAR 文件不能嵌入资源。这就是 AAR 文件存在的原因。而且我猜第三方库也是 JAR ......这真的回答了你的具体问题恕我直言。其余的将需要 AAR 文件(它们确实有理由存在)。
  • 我希望你仔细阅读我的问题:) 我也有一个活动意味着资源。
  • 无法使用 à JAR 文件。同样,这就是 AAR 文件应运而生的原因。
  • 从 AGP 4.0 开始,路径为 build/intermediates/javac/release/classes
【解决方案2】:

aar 与 AS 或 eclipse 无关,但它是 AandroidARchive,适用于 Java 等 Android 应用程序ARchives 用于 java 应用程序。 因为 Android 是基于 java 的,所以可以使用 jars。但是考虑到 android 的特性,比如资源包,aar 是正确的选择。

【讨论】:

    【解决方案3】:

    目前基于 gradle 的构建似乎不允许使用 android studio 创建 jar,我决定选择 Intelij,它有必要的选项,可以做我想做的,我可以使用社区版。

    ***更新**** 即使是 Intelij 生成的带有资源的 jar 也不起作用,显然拥有带有资源的 jar 并不容易,因此决定选择 .aar 并希望 Eclipse 在 gradle 支持时也能获得对 .aar 的支持,因为那是我最关心的问题。

    【讨论】:

    • 找到了适合我的方法(从 Gradle 2.2.1 开始),请参阅我的新答案。
    【解决方案4】:

    将此添加到您的库的 gradle 文件中:

    task deleteJar(type: Delete) {
        delete 'libs/traylib.jar'
    }
    
    task createJar(type: Copy) {
        from('build/intermediates/packaged-classes/release/')
        into('libs/')
        include('classes.jar')
        rename('classes.jar', 'traylib.jar')
    }
    
    createJar.dependsOn(deleteJar, build)
    

    您需要检查生成的 classes.jar 的路径:build/intermediates/packaged-classes/release/

    如果 lib 的根文件夹不存在,请在 lib 根文件夹中创建 lib 文件夹

    转到 gradle 构建:Android Studio --> View --> Toll Windows --> Gradle

    选择你的模块(:library) --> 任务 --> 其他 --> 双击 createJar 任务

    【讨论】:

      【解决方案5】:

      您只需解压缩aar 文件即可获得分离的文件。

      【讨论】:

        猜你喜欢
        • 2016-04-26
        • 2020-06-14
        • 1970-01-01
        • 1970-01-01
        • 2015-03-11
        • 2015-11-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多