正如主题所示,我想创建一个使用一些Android功能(没有布局)的jar库,并将包含在Android项目中。
这可能吗?怎么样?
从我的研究中我设法包括一个使用纯Java(JAVA SE 1.6)的简单jar文件,但是
当我尝试创建一个jar文件时,当我尝试运行Andoid应用程序时遇到以下异常:
致命的异常:主要
java.lang.NoClassDefFoundError:mylib.pleasework.amen
我尝试在我的库中包含android.jar并删除java库,以便jar文件是针对android sdk构建的,但它不起作用。
我尝试将jar文件包含在/ libs文件夹下,因为它被认为是从ADT v17及之后导入Android项目中的jar的正确方法,但这也不起作用。
我想要创建的jar不会使用任何资源(xml布局,strings.xml)只是Log.d和WifiManager。
我知道Android库项目,但我的库源是敏感的,我担心它赢了如果在Android库项目中公开,则不安全。我正在考虑创建一个jar并使用ProGuard(http://developer.android.com/tools/help/proguard.html)对其进行模糊处理。
我想我提到了一切。任何帮助将不胜感激。
谢谢,
托马斯
答案 0 :(得分:1)
正如主题所示,我想创建一个使用一些Android功能(没有布局)的jar库,并将包含在Android项目中。这可能吗?怎么样?
使用jar
命令或<jar>
Ant任务。我确信有从Eclipse中导出JAR的方法,但我个人从未使用它们。
例如,在this 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/
中已编译的JAR替换libs/
树的内容。
答案 1 :(得分:0)
我最终的方式是:创建一个Android库项目(在项目属性中选中isLibrary复选框)通过Eclipse导出它(右键单击project-&gt; export-&gt; jar文件,小心取消选择所有资源 - res文件夹,androidmanifest.xml,* .png等)并通过在/ libs文件夹下导入它将它放在你想要的项目中。
我不知道这是不是最好的解决方案,但它对我有用。
使用ADT r20,Eclipse 3.7.1,Android api 7级