我已经看到了this的问题,并且对于创建一个我可以分发的jar文件有一些疑问,可以在任何Android应用程序中使用。
我的要求是什么
上面链接的SO问题中最受欢迎的答案告诉创建一个普通的java项目并在其中导入android.jar。我试图这样做,但我不知道如何将android.jar添加到任何java项目中。我也希望得到一些澄清。
此外我想知道是否有任何其他方法使用android sdk本身(不使用java项目)创建一个封闭的源库jar文件。
我认为我想要的是可能的,因为google analytics for android native apps似乎已经做到了。我相信他们分发的.jar文件中他们使用的是特定于Android的代码,因为他们似乎没有办法让设备信息显示在分析查看器中。
我想我已经取得了一些进展。这就是我所做的
创建了一个常规的android项目(不是库项目,"是 文库"选中标记未选中)
在项目中,我编写了我的逻辑。它使用了一些android
特定类,例如SharedPreference
,UUID
,PackageManager
。但
与资产无关,布局也没有类扩展
Activity
。只是一个扩展java.lang.object
AndroidManifest.xml
。设置要导出的目标目录和
在保持默认设置的情况下单击下一次三次。然后我点击了
完成,并在我的桌面上获得了一个可爱的 libMyLibraryName.jar 。然后我创建了另一个Android项目,使用 project-> rightclick-> properties-> java build path - >将此libMyLibraryName.jar
添加到新项目中。 libraries->添加外部jar。
我试图在我的新项目中使用我的课程
MyLibraryClass objClass = new MyLibraryClass(this);
我能够成功编译并运行。我甚至将图书馆发送给了我的同事之一,他可以在他的机器上使用该库(只是确保我工作区中的库项目不会影响使用它的项目)。
现在我有两个问题。
1)我的第一个问题是,他们用“真正的图书馆”这个术语是什么意思"在下面给出的文档中?是否可以导出到JAR文件的任何非android java项目?
但是,库项目与标准Android不同 应用程序项目,你不能直接将它编译为自己的 .apk并在Android设备上运行它。 同样,您无法导出 正如您所做的那样,将库项目转换为自包含的JAR文件 对于真正的库。相反,您必须间接编译库, 通过引用依赖应用程序中的库并构建 该申请。
这一部分取自documentation标题"图书馆计划"。
2)我的第二个问题是,我创建JAR文件的方式有什么问题?任何可能的陷阱都可能会让我以后再次陷入困境?在我的重要项目中使用它之前,我想确保我没有做一些非常错误的事情。
我可能会补充一点,我没有尝试创建JAVA项目并导入android.jar
的方法。如果我目前所做的事情是错误的,我准备尝试那个。
答案 0 :(得分:4)
android.jar
将位于您安装Android SDK的位置。在platforms
目录下,应该有许多名为android-<version>
的其他目录。 android.jar
将在那里。选择特定于您要定位的最小Android版本的版本。
完成后,将其复制到项目中。如果您正在使用eclipse,我认为您可以直接将罐子剪切并粘贴到项目中,右键单击并将其添加到构建路径中。如果你没有使用eclipse或任何其他IDE,你只需要确保在构建jar文件时android.jar在类路径上。
之后,您新建的Android库可以放入任何Android项目中。
回答您的其他问题:
真正的库是什么意思是jar文件,而不是Android库项目。
我认为你创建jar文件的方式没有任何问题。我会按照上面提到的android.jar
使用它,但你的方式也应该有效。为了验证这一点,我会检查jar内容并确保其中包含.class
个文件。