将特定于设备的文件添加为codenameone本机lib

时间:2016-07-06 12:34:21

标签: android codenameone

我想将特定于设备的本机代码添加到我的原生android libs。

所以,换句话说,我有一个充满*.so个文件的文件夹: SO File List

然后我有一个单独的CN1Lib应用程序,其本机代码包含几个库。示例应用程序显示此文件夹与正常的.jar库一起添加,因此我使用codenameone执行相同的操作: native libs

包含所有soFolder文件的so(根据示例Android应用程序正确命名)。

然后我构建了这个CN1Lib,并将其添加到lib文件夹下的主项目中。 但是,当我检查codenameone APK并将其与示例Android应用程序进行比较时,.so文件位于不同的位置。示例应用程序将其放在根目录下的lib文件夹下,而codenameone应用程序将其放在assets文件夹下。这会导致需要这些文件的设备无法找到它们。

Example app vs Codenameone Structure

示例应用程序位于左侧,而codenameone应用程序位于右侧。

有没有办法使用codenameone获取apk文件中so文件夹下的lib文件夹?

对此表示感谢。

2 个答案:

答案 0 :(得分:2)

如果您不想解决创建AAR的麻烦,可以采用半解决方案。

你可以创建一个普通的android库项目,在构建它之后,手动打开存档,然后将lib文件夹放在那里。然后,将此jar文件添加为本机android依赖项。

当构建从codenameone返回时,该文件夹应该位于apk文件中:)

正确的方法很可能是AAR方法,但对于一次性解决方案来说,这并不是那么简单。

答案 1 :(得分:1)

我还没有这么做,所以我不是这里的大专家,但据我所知,你需要在Android Studio中创建一个AAR文件并使用它。基于开发者指南部分here