为发布创建一个 Android Jar 库

我知道 Android Library 项目,它允许你创建一个共享源代码项目,可以根据需要放到 Android 应用程序中。但是,这需要该源是可用的。

我正在寻找一种方法来构建和发布一个封闭源代码库,这个库可以在其他 Android 项目中使用,比如传统的 JAR。这需要使用 Android 编译器,因此它不是一个普通的 JavaJAR 文件。FWIW,我不需要在 JAR 中嵌入资源/布局。

我看过 http://andparcel.com/,但感觉像是一个变通方案,我更愿意使用由谷歌“官方支持”的东西。此外,我还需要确保构建的 JAR 与 Android SDK 的新旧版本兼容(例如,我需要一种设置目标平台版本的方法,等等)。

最新的 Android 工具集是否允许创建/使用 JAR 二进制文件?你能指出一些关于我如何做到这一点的文件吗?

89052 次浏览

Google“官方支持”的唯一解决方案是 Library 项目,它需要分发源代码。您可以按正常方式创建 JAR,但是不能在其中包含或引用资源。

不幸的是,我认为在 Library 项目中包含一个打包的 JAR 也是不可能的,这是绕过源代码需求的一种方法。

ADT 创建了一个 bin 文件夹,其中包含项目中所有匹配的源文件和目录的所有类文件,你可以使用 jar 命令,创建一个包含这些类文件和目录的 jar 归档文件,并假设你的库,但是当然类文件平台级别将只针对项目的当前级别构建-你将需要一个不同的 jar 文件为每个平台级别; 然而,这个伟大的事情是,R 类文件包含在项目目录树中,因此你可以访问它的资源。我不知道这是不是机器人的官方做事方式,但我觉得挺管用的。

在我们的项目中,我们正在创建 apk (使用 apkBuilder) ,它安装在/system/Framework 中,并在缺省类路径中添加了这个 apk。为了使用 jar 编译应用程序,我们正在创建一个 jar 文件(使用 jar c)。

注意: 我们在图书馆没有任何资源。

Android 并没有提供一种特殊的 Android-JAR。但是您可以做的是将 build.xml 添加到您的项目中,并使用 ant 构建 JAR。

我的 build.xml 如下所示:

<project name="MyAndroidLib" default="dist" basedir=".">
<description>
This is my Android lib
</description>
<!-- set global properties for this build -->
<property name="src" location="src" />
<property name="bin" location="bin" />


<target name="jar">
<jar destfile="MyAndroidLib.jar" basedir="bin/classes/">
<!-- replace 'com' by what ever you are using -->
<!-- as first part of the package name -->
<!-- e.g. de, org, ... -->
<!-- the ** is important to include the directory recursively -->
<include name="com/**" />
</jar>
</target>
</project>

通过在项目主文件夹中运行 ant jar来构建 JAR。

您可以创建一个“常规”Java 项目并从中导入 Android.jar。然后,您就可以访问 SDK 中的每个组件。然后,你可以导出你的项目作为 jar... 并从你的 Android 应用程序加载它。这种方法非常有效,而且似乎是一种相当直接的方法。

如果您创建一个没有任何资源的 Android Library 项目,ADT (在 r16中首先注意到)将创建一个。和“ bin”文件夹中的项目同名的 jar。

只需转到您想要使用 jar 的项目的属性。点击 Android 标签。并在 Is 库中打勾。现在你可以看到了。在 bin 文件夹中使用 jar 文件。

试试这个,这个有用

1)取消选择 IsLibrary 标志,使您的库项目成为普通项目。

2)作为 Android 应用程序执行你的项目(不会显示任何错误)

3)你会在 bin 文件夹中找到一个.jar 文件和一个.apk 文件夹。

4)给你一个想要使用你的图书馆的罐子。

5)告诉他们只需将外部 jar 导入到构建路径中。

这将工程所有的资源罚款。祝你好运。

Jar 只是一个. zip 文件,其中包含. class 文件 (您可以尝试将任何.jar 文件的扩展名更改为. zip,然后查看结果)。 很容易,您可以通过 zip. class 文件为任何目的创建任何.jar 库。

在 Android Studio 1.2的最新版本中,创建 JAR 库变得非常简单,只需点击鼠标即可。

以下步骤:

  • Goto 文件-> 新建-> 新建模块 enter image description here
  • 在选项列表的末尾选择“ JavaLibrary” enter image description here
  • 输入 jar 库的名称和其中类的名称,然后点击完成按钮 enter image description here
  • 够了!

下一步是将您的 Jar 库作为依赖项添加到您的应用程序中。 就这么简单

  • Goto 文件-> 项目结构-> 选择‘ app’-> 选择‘ Dependency’
  • 选择底部的“ +”-> 选择“模块依赖” enter image description here
  • 选择您刚刚创建的 jar lib 模块 enter image description here enter image description here
  • 选择 OK,就是这样!

或者你可以直接把下面这行添加到你的应用程序等级文件中

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar']) // Default Gradle Task, should be already present
compile 'com.android.support:appcompat-v7:21.0.3' // Default Gradle Task, should be already present


compile project(':nameOfYourJarLibraryModule') // This is your jar library module
}

Google 正在推广 Android Archive (AAR) ,尽管受支持的 JAR 已经回到了 Android Studio

步骤:

1)打开文件 Project.properties

2)增加值 android.library=true

3)储存档案

4)从 Eclipse 菜单中选择 自动构建,然后选择 清洁

全新的 罐子是根据 垃圾箱创建的。