【问题标题】:Android Studio exporting Android library project as jarAndroid Studio 将 Android 库项目导出为 jar
【发布时间】:2016-01-13 23:17:11
【问题描述】:

我正在开发 Android 库项目。在 Eclipse 中,当我想将其导出为 jar 文件时:

  1. 右键Project->Export->Java->Jar文件
  2. 我从src 中手动选择了一些包,仅此而已(没有res 等!) - 这是我图书馆的要求...
  3. 在我选中的复选框中:“导出生成的类文件和资源”。就是这样。

现在我迁移到了 Android Studio,所以在一些 SO 讨论之后,我在gradle.build 下提出了这个问题:

task clearJar(type: Delete) {
    delete 'build/outputs/mysdk.jar'
}

task makeJar(type: Copy) {
    from('build/intermediates/bundles/release/')
    into('build/outputs/')
    include('classes.jar')
    rename ('classes.jar', 'mysdk.jar')
}

makeJar.dependsOn(clearJar, build)

当我随后将 Jar 集成到某些 Android 应用程序中时,无法正常工作,表明导出 Jar 的过程出现问题(库项目没有错误/警告等)。

如何在 Android Studio 中实现类似的导出到 jar 的行为?

谢谢,

【问题讨论】:

  • 只有在没有任何关联资源的情况下,才能将库项目导出为 Jar。您的库项目是否包含 Android 资源(字符串、布局等)?
  • 是的其实很多...我们制作完整的SDK
  • 所以您不能只导出 jar,而是需要分发 .aar
  • 谢谢,使用 Eclipse 开发使用我们 SDK 的应用程序的客户应该怎么做?

标签: android android-studio jar android-gradle-plugin build.gradle


【解决方案1】:

您不想生成jar 文件,因为res/ 文件夹将丢失,并且代码中引用R 文件的任何内容在执行时都会失败。这是因为jar 格式不支持android res。您希望您的构建改为以aar 格式为目标。使用 gradle 很简单。无需应用应用程序插件 (apply plugin: 'com.android.application'),只需应用库插件 (apply plugin: 'com.android.library')。

然后gradle build 将生成一个aar 文件,其中将包含您的所有资源。

仍在使用 eclipse 的开发者会熟悉如何导入 aar 文件,因为那是 android 标准。如果他们还没有学习,有很多 SO 帖子可以提供帮助。

使用 gradle 或 maven 的开发人员在使用您的 sdk 时不会有任何问题

【讨论】:

    猜你喜欢
    • 2012-12-24
    • 2013-12-02
    • 2015-05-28
    • 2013-09-15
    • 1970-01-01
    • 2014-05-21
    • 2017-06-07
    • 2014-01-12
    • 1970-01-01
    相关资源
    最近更新 更多