我已经看到了
this的问题,并且对于创建可以分发的jar文件有更多的疑问,可以在任何android应用程序中使用.
@H_301_2@我的要求是什么
@H_301_2@>正如我所说,我想构建和分发封闭的源库.一世
不要让源代码可见.
>在该库中,我不想使用任何资源,布局,资源
等等,但是我想使用一些android特定的代码,如getting
android device id. @H_301_2@上面链接的SO问题中最受欢迎的答案就是要创建一个常规的java项目并在其中导入android.jar.我试图这样做,但我不知道如何添加android.jar到任何java项目.我也想澄清一下. @H_301_2@此外,我想知道是否有任何其他方法使用android sdk本身(不使用java项目)创建一个封闭的源库jar文件. @H_301_2@我想我想要的是可能的,因为google analytics for android native apps似乎已经做到了.我确定在.jar文件中,他们分发他们正在使用Android特定的代码,因为他们似乎没有其他方式让设备信息显示在分析查看器中. @H_301_2@编辑:CAN SOMEONE CLARIFY THIS? @H_301_2@我想我已经取得了一些进展.这就是我所做的 @H_301_2@创建了一个常规的android项目(不是库项目,“是”
图书馆“复选标记未选中)
在这个项目中,我编写了我的逻辑.它使用一些android
特定类,如SharedPreference,UUID,PackageManager.但
与资产无关,布局也没有延期
活动.只是一个扩展java.lang.object的java类
>使用Project-> rightclick-> export-> Java-> JAR导出项目
文件.在下一个屏幕中,我未勾选附近的复选框
AndroidManifest.xml中.设置要导出的目标目录
保持默认设置,点击下一次三次.然后我点了
完成,并在我的桌面上得到一个可爱的libMyLibraryName.jar. @H_301_2@然后我创建了另一个Android项目,将这个libMyLibraryName.jar添加到新项目中,使用project-> rightclick-> properties-> java构建路径 – >库 – >添加外部jar. @H_301_2@在我的新项目中,我试图在图书馆中使用我的课程
不要让源代码可见.
>在该库中,我不想使用任何资源,布局,资源
等等,但是我想使用一些android特定的代码,如getting
android device id. @H_301_2@上面链接的SO问题中最受欢迎的答案就是要创建一个常规的java项目并在其中导入android.jar.我试图这样做,但我不知道如何添加android.jar到任何java项目.我也想澄清一下. @H_301_2@此外,我想知道是否有任何其他方法使用android sdk本身(不使用java项目)创建一个封闭的源库jar文件. @H_301_2@我想我想要的是可能的,因为google analytics for android native apps似乎已经做到了.我确定在.jar文件中,他们分发他们正在使用Android特定的代码,因为他们似乎没有其他方式让设备信息显示在分析查看器中. @H_301_2@编辑:CAN SOMEONE CLARIFY THIS? @H_301_2@我想我已经取得了一些进展.这就是我所做的 @H_301_2@创建了一个常规的android项目(不是库项目,“是”
图书馆“复选标记未选中)
在这个项目中,我编写了我的逻辑.它使用一些android
特定类,如SharedPreference,UUID,PackageManager.但
与资产无关,布局也没有延期
活动.只是一个扩展java.lang.object的java类
>使用Project-> rightclick-> export-> Java-> JAR导出项目
文件.在下一个屏幕中,我未勾选附近的复选框
AndroidManifest.xml中.设置要导出的目标目录
保持默认设置,点击下一次三次.然后我点了
完成,并在我的桌面上得到一个可爱的libMyLibraryName.jar. @H_301_2@然后我创建了另一个Android项目,将这个libMyLibraryName.jar添加到新项目中,使用project-> rightclick-> properties-> java构建路径 – >库 – >添加外部jar. @H_301_2@在我的新项目中,我试图在图书馆中使用我的课程
@H_301_2@我能够成功编译和运行.我甚至把图书馆送到我的一个同事,在他的机器上能够使用图书馆(只要确保我的工作区的图书馆项目不会影响使用它的项目). @H_301_2@现在我有2个问题. @H_301_2@1)我的第一个问题是,下面给出的文件中的“真实图书馆”一词是什么意思?是否可以导出到JAR文件的任何非android java项目?
- MyLibraryClass objClass = new MyLibraryClass(this);
@H_301_2@However,a library project differs from an standard Android@H_301_2@那这部分是从documentation年的“图书馆项目”标题. @H_301_2@2)我的第二个问题是,我创建JAR文件的方式有什么问题吗?任何可能会陷入困境的可能陷阱?在我重要的项目中使用它之前,我想确保我不会做一些非常错误的事情. @H_301_2@我可能补充说,我没有尝试创建一个JAVA项目并导入android.jar的方法.我准备尝试那个,如果我目前做的是错的.
application project in that you cannot compile it directly to its own
.apk and run it on an Android device. Similarly,you cannot export
the library project to a self-contained JAR file,as you would do
for a true library. Instead,you must compile the library indirectly,
by referencing the library in the dependent application and building
that application.
解决方法
android.jar将位于您安装Android SDK的位置.在platform目录下,应该有一些名为android-< version> ;.的其他目录. android.jar会在那里选择一个特定于您所定位的最低Android版本. 一旦你这样做,把它复制到你的项目.如果您使用eclipse,我认为您可以直接将罐子剪切并粘贴到项目中,右键单击并将其添加到构建路径.如果您不使用eclipse或其他任何IDE,您只需要确保在构建jar文件时,android.jar就位于类路径上. 之后,您新建的Android库可以放入任何Android项目. 回答您的其他问题: >一个真正的图书馆的意思是一个jar文件,而不是一个Android图书馆的项目. >我不认为创建jar文件的方式有问题.我会使用android.jar,如上所述,但你的方式也应该工作.为了验证这一点,我将检查jar内容,并确保所有你有的.class文件.