如何从 Android Studio 项目中制作.jar

2022-08-31 09:34:56

我正在使用AndroidStudio,我有这个项目,如下所示:

enter image description here

蓝色圆圈内的东西是myLib。myLib 还需要使用红色圆圈内的外部库和 apache 包(绿色圆圈)。

所以我想让整个事情成为一个单一的.jar,这样我就可以在另一个项目中使用它。

分步指南将不胜感激,我是开发人员世界的初学者。

谢谢!


答案 1
  • 为库项目打开 build.gradleenter image description here

  • 在 build.gradle 中编写两个任务 -- deleteJar 和 createJar 并添加规则 createJar.dependsOn(deleteJar, build)enter image description here

上面的代码:

task deleteJar(type: Delete) {
    delete 'libs/jars/logmanagementlib.jar'
}           

task createJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('libs/jars/')
    include('classes.jar')
    rename('classes.jar', 'logmanagementlib.jar')
}

createJar.dependsOn(deleteJar, build)
  • 从右侧展开 gradle 面板,然后打开库>其他任务下的所有任务。您将在那里看到两个新任务 - createJar和deleteJarenter image description here

  • 双击创建Jarenter image description here

  • 任务成功运行后,从 createJar 任务中提到的路径(即 libs/xxxx)中获取生成的 jar.jarenter image description here

  • 将新生成的 jar 复制到所需项目的 lib 文件夹中 - >右键单击 - >选择“添加为库”


答案 2

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

将还需要编译的代码放入 jar 中,并将其移动到 Android Studio 中单独的纯 Java 模块中:

  1. java 库中>“新建模块...”>“文件”菜单
  2. 在向导中设置库、Java 包名和类名。(如果您不希望它为您创建类,则可以在创建模块后将其删除)
  3. 在 Android 代码中,设置对新模块的依赖关系,以便它可以使用新库中的代码:
  4. 文件>项目结构>模块>(您的 Android 模块)> 依赖项> + > 模块依赖项。请参阅下面的屏幕截图:enter image description here
  5. 从出现的对话框中的列表中选择您的模块:enter image description here

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


推荐