如何在 Adobe Air Mobile 的 Android 原生扩展中包含额外的 Jar
Posted
技术标签:
【中文标题】如何在 Adobe Air Mobile 的 Android 原生扩展中包含额外的 Jar【英文标题】:How to include additional Jar in Android Native Extension for Adobe Air Mobile 【发布时间】:2014-08-28 20:49:06 【问题描述】:我使用 Adobe Air Mobile (FlashBuilder) 和 android Native Extensions (ANE) 构建了一个非常不错的小应用程序。我想将 Jayspt 加密库与我的 ANE 合并,但我似乎找不到任何说明如何操作的文档。如果我为 ANE 构建执行标准 ADT 导出到 jar,它不包括 jayspt jar。
有人知道如何(为我拼出来)在 ANE 中加入另一个罐子吗?
谢谢, 脸书
【问题讨论】:
【参考方案1】:首先确保您使用的是 AIR 4.0+ 进行打包。早期版本当然也可以,但是下面的方法要容易得多,并且不需要重新打包 jar。首先,您只需将其作为外部库添加到您的 Android 项目中,这将使您的代码中的所有功能都可用。
然后为android创建一个platform-options-android.xml,它应该如下所示:
<platform xmlns="http://ns.adobe.com/air/extension/4.0">
<packagedDependencies>
<packagedDependency>jayspt.jar</packagedDependency>
</packagedDependencies>
<packagedResources>
</packagedResources>
</platform>
您需要确保 jayspt.jar 文件与您的本机扩展 jar 文件位于同一目录中。
现在在你的打包脚本中确保你指定了 android 的平台选项:
adt -package [YOUR NORMAL OPTIONS] \
-platform Android-ARM -platformoptions platform-options-android.xml -C [PATH TO YOUR LIB] .
【讨论】:
嗨,我尝试了这种方法,发现 jar 文件被正确捆绑在一个文件中。(当我添加 packagedDependencies 时 b/c 文件大小增加),但是,在我的空气中,通过包含ANE,重新编译一切。当我启动应用程序时,它仍然找不到外部库。我不明白为什么。通过移除 ANE、添加回 ANE 并重建所有内容尝试了几次。请帮忙。谢谢 嗨,在目录结构中保存platform-options-android.xml文件的地方是什么?在平台目录中? 我们将其与 extension.xml 保持在同一级别 @Michael 你能看看我提出的this 问题吗?我已经列出了我正在尝试做的所有事情。如果你能让我知道我做错了什么,那就太好了......以上是关于如何在 Adobe Air Mobile 的 Android 原生扩展中包含额外的 Jar的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Adobe AIR 中检测 Android 操作系统版本?
如何在 Adobe AIR 中创建 Android 选项菜单? (不是Java)