当前位置: 首页 > 知识库问答 >
问题:

Android库项目作为jar文件发布,就像google analytics一样

庞旺
2023-03-14

我已经看到了这个问题,并且对于创建一个可以分发并且可以在任何android应用程序中使用的jar文件有了更多的疑问。

我的要求是什么

  1. 正如我所说,我想构建并分发一个闭源库。我不希望源代码可见。
  2. 在该库中,我不想使用任何资产、布局、资源等,但我想使用一些特定于android的代码,例如获取android设备ID。

我认为我想要的是可能的,因为google analytics for android原生应用似乎已经做到了。我确信,在他们发布的.jar文件中,他们使用的是android特定代码,因为他们似乎没有其他方法来获取设备信息以显示在analytics Viewer中。

我想我已经取得了一些进步。这就是我所做的

>

  • 创建了常规android项目(不是库项目,“是库”复选标记未选中)

    MyLibraryClass objClass = new MyLibraryClass(this);
    

    并且我能够成功地编译和运行。我甚至把库发送给了我的一个同事,他能够在他的机器上使用库(只是确保我工作区中的库项目不会影响使用它的项目)。

    现在我有两个问题。

    1)我的第一个问题是,他们在下面给出的文档中所说的“真库”是什么意思?是否有任何非android java项目可以导出到JAR文件中?

    2)我的第二个问题是,我创建JAR文件的方式有什么问题吗?有什么可能的缺陷会在以后反噬我吗?我想确保在我的重要项目中使用JAR文件之前,我没有做严重错误的事情。

    我可能会补充说,我没有尝试创建JAVA项目并导入android.jar的方法。如果我现在做的是错的,我准备尝试一下。

  • 共有1个答案

    伯博
    2023-03-14

    Android.jar将位于安装Android SDK的位置。在platforms目录下,应该有许多名为android- 的其他目录。android.jar就会出现。选择一个特定于最低android版本的目标。

    一旦你有了它,把它复制到你的项目中。如果您使用的是eclipse,我认为您可以直接将JAR剪切并粘贴到项目中,右键单击并将其添加到构建路径中。如果您不使用eclipse或任何其他IDE,那么在构建jar文件时只需要确保类路径上有android.jar。

    之后,您新建的android库可以放到任何android项目中。

     类似资料:
    • 通常 JAR 文件需要在某个地方发布. 为了完成这一步, 你需要告诉 Gradle 哪里发布 JAR 文件. 在 Gradle 里, 生成的文件比如 JAR 文件将被发布到仓库里. 在我们的例子里, 我们将发布到一个本地的目录. 你也可以发布到一个或多个远程的地点. Example 7.7. 发布 JAR 文件 build.gradle uploadArchives { repositor

    • 标题可能会让人困惑(虽然准确)。让我用更多的文字来解释: 重复一遍,我希望库需要的所有东西都打包在一个jar文件(ProjectB的jar文件)中,这样当我将它导入到Android应用程序的库中时,我就可以使用它了。 有没有来自Android开发人员的帮助?

    • 问题内容: 我正在使用AndroidStudio,并且有如下所示的项目: 在此处输入图片说明 蓝色圆圈内的是myLib。myLib还需要使用位于红色圆圈内的外部库和一个apache包(绿色圆圈)。 因此,我想将整个东西变成单个.jar,以便可以在其他项目中使用它。 我是开发人员领域的初学者,非常感谢您提供分步指南。 问题答案: 打开库项目的build.gradle 在build.gradle中编写

    • 一般情况下一个库只会发布它的release Variant(变种)版本。这个版本将会被所有引用它的项目使用,而不管它们本身自己构建了什么版本。这是由于Gradle的限制,我们正在努力消除这个问题,所以这只是临时的限制。 你可以控制哪一个Variant版本作为发行版: android { defaultPublishConfig "debug" } 注意这里的发布配置名称引用的是完整的Va

    • 我有一个项目。对项目进行更改后,我将项目打包成一个Uber Jar文件,并将其上传到备份中。我在想,如果我的电脑坏了,或者我把所有的代码都丢给了这个项目,我能只用Uber Jar文件把项目拿回来吗?还是这个项目会永远消失? 如何将这个Jar文件作为一个项目打开,并查看其中的所有Java代码?

    • 有人能从实用的角度详细说明一下为什么要用。jar而不是。war吗?有什么需要注意的问题吗? 编辑:也欢迎其他答案