创build一个Android Jar库进行分发

我知道Android库项目,它允许您创build可以根据需要拖入Android应用程序的共享源项目。 但是,这要求该来源可用。

我正在寻找一种方法来构build和分发一个可以在其他Android项目(如传统JAR)中使用的闭源库。 这将需要使用Android编译器,所以它不是一个vanilla-Java JAR文件。 FWIW,我不需要在JAR中embedded资源/布局。

我已经看到http://andparcel.com/,但感觉就像一个解决方法,我宁愿使用谷歌“官方支持”的东西。 此外,我需要确保我构build的JAR与旧版/新版Android SDK兼容(即,我需要一种设置目标平台版本的方法等)。

最新的Android工具集允许创build/使用JAR二进制文件吗? 你可以指出一些文件,我怎么能做到这一点?

如果创build一个没有任何资源的Android库项目,ADT(首先在r16中注意到)会创build一个与'bin'文件夹中项目名称相同的.jar文件。

Android不提供特殊types的Android-JAR。 但是,你可以做的是添加一个build.xml到你的项目,并用antbuild立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 --> <!-- eg de, org, ... --> <!-- the ** is important to include the directory recursively --> <include name="com/**" /> </jar> </target> </project> 

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

您可以创build一个“常规”的Java项目,并从那里导入Android.jar。 然后,您将可以访问SDK中的每个组件。 然后,你可以导出你的项目作为jar …并从您的Android应用程序加载它。 这个工作很好,这似乎是一个很好的直接的方法来做到这一点。

只要去你想要jar的项目的属性。单击Android选项卡上。 并在Is库中打勾。 现在您可以在bin文件夹中看到.jar文件。在您要使用的位置使用它。

Google正式支持的唯一解决scheme是库项目,它需要分发源代码。 您可以按照正常的方式创buildJAR,但不能在其中包含或引用资源。

不幸的是,我认为也不可能在一个库项目中包含一个打包好的JAR,作为解决源代码需求的一种手段。

试试这个:这工作

1)通过取消selectIsLibrary标志使你的图书馆项目成为一个正常的项目。

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

3)你会在.apk文件夹中find.jar文件。

4)给你.jar谁想要使用你的图书馆。

5)告诉他们只需将外部jar导入到构buildpath。

这对所有的资源都可以正常工作。 祝你好运。

在Android Studio 1.2的最新版本中,JAR库的创build就像点击一样简单。

遵循的步骤:

  • 转到文件 – >新build – >新build模块 在这里输入图像描述
  • 在选项列表的末尾select“Java库” 在这里输入图像描述
  • inputjar子库名称和类名称,然后点击完成button 在这里输入图像描述
  • 而已 !

下一步是添加你的Jar库作为你的应用程序的依赖。 就这么简单

  • 转到文件 – >项目结构 – >select“应用程序” – >select“依赖”
  • select底部的“+” – >select“模块依赖” 在这里输入图像描述
  • select你刚刚创build的jar lib模块 在这里输入图像描述在这里输入图像描述
  • select好,那就是它!

….或者你可以只添加下面的行到你的应用程序gradle文件

 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 } 

谷歌正在推广Android归档(AAR),尽pipe支持的JAR被带回到了android studio。为了找出AAR和JAR之间的区别,请参考这个链接

ADT创build一个bin文件夹,其中包含项目中所有匹配的源文件和目录的所有类文件,您可以使用jar命令创build一个包含这些类文件和目录的jar文件,并假定您的库,当然,类文件平台级别只会针对当前级别的项目构build – 您需要为每个平台级别使用不同的jar文件; 然而,最棒的是R.class文件包含在项目目录树中,因此您可以访问其资源。 我不知道这是否是官方的方式来做android的东西,但它为我工作。

在我们的项目中,我们正在创build安装在/ system / framework中的apk(使用apkbuilder),并将此apk添加到默认的类path中。 为了编译使用jar的应用程序,我们正在创build一个jar文件(使用jar c)。

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

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

打开文件project.properties,input值android.library = true

保存文件,从项目的eclipse菜单中select'自动生成',然后select'干净'全新的jar被创build在bin下