有可能创建包含android功能的jar吗



正如主题所示,我想创建一个使用一些android功能(无布局)的jar库,该库将包含在android项目中。这可能吗?怎么可能?根据我所做的研究,我设法包含了一个使用纯Java(Java SE 1.6)的简单jar文件,但是当我尝试创建一个jar文件时,我在尝试运行Andoid应用程序时遇到了以下异常:
致命异常:main
java.lang.NoClassDefFoundError:mlyb.pleasework.amen

我试着在我的库中包含android.jar,并删除java库,这样jar文件就可以根据androidsdk构建,但没有成功
我尝试将jar文件包含在/libs文件夹下,因为据说这是从ADT v17及以后在android项目中导入jar的正确方法,但也不起作用
我想要创建的jar将不使用任何资源(xml布局、strings.xml),只使用Log.d和WifiManager
我知道Android库项目,但我的库源是敏感的,我担心如果暴露在Android库项目中,它将不安全。我正在考虑创建一个罐子并使用ProGuard(http://developer.android.com/tools/help/proguard.html)混淆它。我想我都提到了。任何帮助都将不胜感激。

谢谢,
Thomas

正如主题所示,我想创建一个jar库,它使用一些android功能(没有布局),并将包含在android项目中。这可能吗?怎么可能?

使用jar命令或<jar>Ant任务。我确信有一些方法可以从Eclipse导出JAR,但我个人从未使用过这些方法。

例如,在这个GitHub repo中,我有一个可重复使用的组件和一个作为示例应用程序的子项目。我的回购build.xml包含以下自定义任务:

<target name="jar" depends="debug">
    <jar
        destfile="bin/CWAC-WakefulIntentService.jar"
        basedir="bin/classes"
    />
</target> 

这会生成一个JAR文件,其他Android应用程序可以通过添加到其libs/目录来使用该文件。

我知道Android库项目,但我的库源是敏感的,我担心如果在Android库项目中暴露,它将不安全。

那么,作为JAR公开它也不安全。您可以创建一个供公众使用的Android库项目,该项目将src/树的内容替换为库中libs/中已编译的JAR。

我最终的做法是:创建一个Android Library项目(选中项目属性中的isLibrary复选框),通过Eclipse导出(右键单击项目->export->jar文件,小心取消选择所有资源-res文件夹、androidmanifest.xml、*.png等),并通过将其导入/libs文件夹将其放入您想要的项目中
我不知道这是否是最好的解决方案,但它对我有效。
使用ADT r20、Eclipse 3.7.1、Android api级别7

最新更新