【问题标题】:Generating Jar file in Android Studio在 Android Studio 中生成 Jar 文件
【发布时间】:2015-04-27 03:33:39
【问题描述】:

我在 Android Studio 中有一个库项目。我想为这个库生成一个 .jar 文件。我需要这个库项目拥有的jar file contain/include all the dependencies

问题是我找不到生成 jar 文件的方法。有什么方法可以为我的项目生成 jar 文件?

最好的问候

【问题讨论】:

标签: android jar android-studio


【解决方案1】:

HereGradle 任务的一个示例,它从classes.jar 创建.jar

classes.jar 文件可以在/build/intermediates/exploded-aar/ 文件夹中找到。

编辑: 为每个 Android Library 项目创建 jar 文件并独立分发它们。库项目所需的依赖项呢 - 在最终项目中添加这些依赖项,您的库将在其中使用。

例如:你Android Library项目MyLibProject,在build.gradle中有如下依赖

dependencies {
    compile "com.android.support:support-v4:19.+"
}

当你构建你的项目时,你会得到classes.jar for MyLibProject,而那些classes.jar 将只包含来自库项目的类,而不是来自com.android.support:support-v4:19.+

之后在另一个项目中添加classes.jar 作为build.gradle 中的库依赖项,并定义与MyLibProject 中相同的依赖项。

如果您仍然需要fatJar,请查看here 如何使用Gradle 创建fatJar

【讨论】:

  • 做到了。它不会使用我在 gradle.properties 文件的 POM_ARTIFACT 中指定的名称创建一个 jar。
  • 主要思想:构建项目后,您将获得每个 Android 库项目的 classes.jar 文件。 Gradle 任务只是重命名此文件。
  • 不,没有,这通常是个坏主意。为每个 Android 库项目创建 jar 文件并独立分发它们。库项目所需的依赖项呢 - 在最终项目中添加这些依赖项,您的库将在其中使用:)
  • 那些 classes.jar 文件不包含库的依赖文件。我的意思是库项目中的 jar 文件没有打包在这个 classes.jar 文件中。我现在该怎么办?
  • Gradle 说 Coudln 在任务 'fatJar' 上找不到属性 'jar'
【解决方案2】:

如果您在 Gradle 中将代码设置为纯 Java 模块,那么让 Gradle 为您提供包含内容的 jar 文件真的很容易。该 jar 文件将只有您的代码,而不是它所依赖的其他 Apache 库。我建议以这种方式分发它;在您的库中捆绑依赖项有点奇怪,并且这些库的用户必须自己包含这些依赖项更为正常(因为否则这些项目的冲突已经链接了库的副本,可能是不同版本的)。更重要的是,如果您要发布您的库,您可以避免在重新分发其他人的代码时出现潜在的许可问题。

将同样需要编译到 jar 中的代码移到 Android Studio 中单独的纯 Java 模块中:

File menu > New Module... > Java Library
Set up the library, Java package name, and class names in the wizard. (If you don't want it to create a class for you, you can just delete it once the module is created)
In your Android code, set up a dependency on the new module so it can use the code in your new library:
File > Project Structure > Modules > (your Android Module) > Dependencies > + > Module dependency. See the screenshot below: 

从出现的对话框中的列表中选择您的模块:

希望您的项目现在应该可以正常构建。构建后,Java 库的 jar 文件将放置在模块目录的 build/libs 目录中。如果要手动构建 jar 文件,可以从 Gradle 窗口运行其 jar 构建文件任务:

此处为原创文章:How to make a .jar out from an Android Studio project

【讨论】:

    猜你喜欢
    • 2017-12-29
    • 1970-01-01
    • 2014-07-15
    • 2013-11-26
    • 2016-12-31
    • 2015-12-03
    • 2015-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多