Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 创建用于分发的Android Jar库_Java_Android_Jar - Fatal编程技术网

Java 创建用于分发的Android Jar库

Java 创建用于分发的Android Jar库,java,android,jar,Java,Android,Jar,我知道Android库项目,它允许您创建一个共享源代码项目,可以根据需要拉入Android应用程序。然而,这要求该来源是可用的 我正在寻找一种构建和分发封闭源代码库的方法,该库可以用于其他Android项目,比如传统的JAR。这需要使用Android编译器,所以它不是一个普通的JavaJAR文件。FWIW,我不需要在JAR中嵌入资源/布局 我已经看过了,但感觉像是一种变通方法,我更愿意使用谷歌“官方支持”的东西。此外,我需要确保我构建的JAR与旧/新版本的androidsdk兼容(即,我需要一种

我知道Android库项目,它允许您创建一个共享源代码项目,可以根据需要拉入Android应用程序。然而,这要求该来源是可用的

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

我已经看过了,但感觉像是一种变通方法,我更愿意使用谷歌“官方支持”的东西。此外,我需要确保我构建的JAR与旧/新版本的androidsdk兼容(即,我需要一种设置目标平台版本的方法,等等)


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

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


不幸的是,我认为也不可能在库项目中包含打包的JAR,作为绕过源代码要求的方法。

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

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


注意:我们的库中没有任何资源。

Android没有提供特殊类型的Android JAR。但是您可以做的是向项目中添加build.xml并使用ant构建JAR

My 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>

这是我的Android库

通过在您的项目主文件夹中运行
antjar
来构建JAR。

您可以创建一个“常规”Java项目并从那里导入Android.JAR。然后,您将可以访问SDK中的每个组件。然后,您可以将项目导出为jar。。。并从Android应用程序加载。这非常有效,而且似乎是一种非常简单的方法。

如果您在没有任何资源的情况下创建Android库项目,ADT(在r16中首次发现)将创建一个与“bin”文件夹中的项目同名的.jar

只需转到要制作jar的项目的属性。单击Android选项卡。在Is库中打勾。现在,您可以在bin文件夹中看到.jar文件。请在您想使用的地方使用它。

试试这个:这很有效

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

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

3) 您将在bin文件夹中找到一个.jar文件和.apk

4) 给你.jar谁想使用你的库

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


这在所有资源中都能正常工作。祝你好运。

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

在最新版本的Android Studio 1.2中,jar库的创建非常简单,只需点击即可

应采取的步骤:

  • 转到文件->新建->新建模块
  • 选择选项列表末尾的“Java库”
  • 输入jar库的名称和其中的类名,然后点击finish按钮
  • 就这样
下一步是在应用程序中添加Jar库作为依赖项。 就这么简单

  • 转到文件->项目结构->选择“应用程序”->选择“依赖项”
  • 选择底部的“+”->选择“模块依赖项”
  • 选择您刚才在上面创建的jarlib模块
  • 选择Ok,就这样
..或者您可以将下面的行添加到您的应用程序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 Archive(AAR),尽管支持的JAR被带回Android studio。要了解AAR和JAR之间的区别,请参阅步骤:

1) 打开文件project.properties

2) 添加值
android.library=true

3) 保存文件

4) 从project的eclipse菜单中,选择自动构建,然后选择清除

结果:
全新的jar是在bin

下创建的,“您可以用正常的方式创建一个jar,但不能在其中包含或引用资源。”我只是在Eclipse中创建一个普通的Java项目,将安卓.jar添加到构建路径,然后选择Export-Java-Jar File.@JeffGilfelt,如果在示例中包括android-13 sdk目录的android.Jar,您是否能够在项目中使用Jar库以获得更高的API级别?尝试了这个方法并能够构建Jar文件,但与将库导出到Jar时相比,该文件的大小是奇数(仅343字节)。你知道缺少什么标志吗?你可以用一个存档程序(JAR是ZIP)检查JAR的内容