2012-07-11 94 views
0

正如主题表明我想创建一个使用一些android功能(没有布局),并将包括在Android项目中的jar库。 这是可能的和如何? 从我做的研究,我设法包括一个简单的jar文件,使用纯Java(JAVA SE 1.6),但 当我尝试创建一个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)对其进行混淆。 我想我提到了一切。任何帮助将不胜感激。是否有可能创建包含android功能的jar?

感谢,
托马斯

回答

0

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

1

As the topic indicates I would like to create a jar library that uses some android functions (no layouts) and that will be included in an Android project. Is that possible and how?

使用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/目录使用。

I am aware of Android Library Project but my library source is sensitive and I am afraid that it won't be safe if exposed in a Android library project.

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

+0

首先谢谢你的回答。我已经从Eclipse中导出jar文件,并将其导入到我的Android项目中,并且在构建时一切正常。在运行时,我得到了上面提到的异常。我不知道是否直蚂蚁使用会有所作为我想我会尝试......在我的jar我应该包括出口android.jar或不?关于安全性,如果我理解正确,创建一个库项目并导入jar会创建一个“封装”层,因此它会更安全? – 2012-07-11 11:30:25

+0

@ThomasKa:如果您使用的是R17或更高版本的工具,那么只需在'libs /'中使用JAR即可。如果它没有找到这些类,请确保它们在JAR中,在我的jar中标记为'public'等。“我应该包括 - 也不会导出android.jar?” - 绝对不。 “创建一个库项目并导入jar会创建一个更多的”封装“层,因此它会更安全?” - 一旦代码离开开发机器,它本质上是不安全的。我猜你的问题是你不想发布源代码,并且有办法解决这个问题。 – CommonsWare 2012-07-11 11:35:59

相关问题