【发布时间】:2013-06-02 23:50:48
【问题描述】:
这似乎是使用 Eclipse 导出 jar 时的常见问题。现在,我的上下文。
我正在尝试编写 Java 插件以在 Unity 应用程序中使用。当我做了一个没有外部库的简单插件(classes.jar 除外,所以我可以调用 UnityPlayerActivity)时,它工作得很好。 “现在,让我们使用一些实用程序库”。所以我写了一个插件,它使用 Jackson 库来解析和处理 JSON 数据,所以我可以将它序列化为 Java 对象,或者只是传递 RAW 数据,然后构建一个 Unity (C#) 对象。
我将库直接从文件系统添加到'libs'文件夹(复制.jars,而不是链接它们),添加到构建路径,检查Order and Export中的每一个,清理和构建,然后导出到 JAR 文件(不可运行,而是简单的 JAR 文件)。然后,我将新的 .jar 添加到 Unity Assets/Plugins/Android 文件夹,然后构建我的 .apk。游戏一开始,我就得到了经典的 NoClassDefFoundError,因为构造函数使用了 Jackson 类。检查 .jar 内容,我发现 Jackson 库确实已导出并位于“libs”文件夹中,但仍然无法“找到”它。错误会被主线程抛出,导致应用崩溃。
我在 API 17 中使用 ADT,因此 libs 文件夹必须命名为“libs”(即使 Eclipse 在创建新的 Android 项目时也会创建此文件夹),JRE 1.6 和 Jackson 库版本。 2.2.0。已经在这里关注了很多问题,但他们的建议都没有对我有用。
这里有什么建议吗? Android API 版本在这里有什么用吗?有什么我没有做的吗?
提前致谢。
【问题讨论】:
标签: android eclipse jar unity3d adt