如何从Android Studio项目中创建.jar

时间:2014-02-11 20:49:38

标签: java android jar android-studio

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

enter image description here

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

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

分步指南非常感谢,我是开发人员世界的初学者。

谢谢!

9 个答案:

答案 0 :(得分:128)

  • 打开库项目的build.gradle enter 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和deleteJar enter image description here

  • 双击createJar enter image description here

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

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

答案 1 :(得分:55)

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

将需要编译的代码转换为jar,并将其移至Android Studio中的单独普通Java模块:

  1. 文件菜单> 新模块...... > Java Library
  2. 在向导中设置库,Java包名称和类名。 (如果您不希望它为您创建一个类,则可以在创建模块后将其删除)
  3. 在Android代码中,设置新模块的依赖关系,以便它可以使用新库中的代码:
  4. 档案> 项目结构> 模块> (您的Android模块)> 依赖关系> + > 模块依赖。请参见下面的截图: enter image description here
  5. 从出现的对话框的列表中选择您的模块: enter image description here
  6. 希望您的项目现在应该正常建设。完成构建后,Java库的jar文件将放在模块目录的 build / libs 目录中。如果要手动构建jar文件,可以从Gradle窗口运行其 jar 构建文件任务: enter image description here

答案 2 :(得分:13)

Task下,Gradle已经有一个other

enter image description here

然后向下滚动到createFullJarRelease并单击它。

Gradle Tasks

之后,您将在项目的此文件夹中找到人工制品

Build > Intermediates > Full_jar > Release > CreateFullJarRelease > full.jar

答案 3 :(得分:9)

只需将其添加到java模块的build.gradle即可。它将包含归档中的依赖库。

mainClassName = "com.company.application.Main"

jar {
  manifest { 
    attributes "Main-Class": "$mainClassName"
  }  

  from {
    configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
  }
}

这将导致[module_name] / build / libs / [module_name] .jar文件。

答案 4 :(得分:1)

  1. 转到Android Studio中的“ Gradle”选项卡,然后选择库项目。

  2. 然后转到任务

  3. 然后转到其他

  4. 双击bundleReleaseaar

您可以在.aar下找到your_module/build/outputs/aar/your-release.aar个文件

Here image

答案 5 :(得分:0)

我找到的方法是找到项目编译器输出(项目结构>项目)。 然后找到你想要转向jar的模块的编译文件夹, 用zip压缩它并将输出的扩展名从zip更改为jar。

答案 6 :(得分:0)

.jar文件将在您编译/运行应用程序时自动生成。

你可以从root_folder / app / build / intermediates / bundles / debug找到你的class.jar文件

jar file location

答案 7 :(得分:0)

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

task exportjar(type: Copy) {
    from('build/intermediates/compile_library_classes/release/')
    into('libs/')
    include('classes.jar')
    rename('classes.jar', 'mylibrary.jar')
}

exportjar.dependsOn(deleteJar, build)

答案 8 :(得分:0)

如果您从AndroidStudio运行gradle任务

assembleRelease 

或通过终端

./gradlew <moduleName>:assembleRelease

然后您将能够在.aar中找到<modulePath>/build/outputs/aar/<Name>.aar

之后,您可以使用命令行工具进行其他操作(例如,创建.jar