0

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

我尝试在我的库中包含 android.jar 并删除 java 库,以便针对 android sdk 构建 jar 文件,但它不起作用。
我尝试将 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 ) 对其进行混淆。我想我提到了一切。任何帮助将不胜感激。

谢谢,
托马斯

4

2 回答 2

1

正如主题所示,我想创建一个使用一些 android 函数(无布局)的 jar 库,并将其包含在 Android 项目中。这可能吗?怎么做?

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

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

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

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

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

It won't be safe exposed as a JAR, then, either. You can create an Android library project for public consumption that replaces the src/ tree's contents with a compiled JAR in libs/ in the library.

于 2012-07-11T10:58:34.203 回答
0

The way I did it in the end was: to create an Android Library project (check isLibrary checkbox in project properties) export it through Eclipse (right click on the project->export->jar file, careful to deselect all resources - res folder, androidmanifest.xml, *.png etc) and put it in the project you want by importing it under /libs folder.
I don't know if this is the best solution but it worked for me.
Used ADT r20, Eclipse 3.7.1, Android api level 7

于 2012-07-11T13:23:25.177 回答