在Android库模块中使用JNI与应用程序模块的库模块。

4
我有一个项目,包含3个模块 - 一个库和两个应用程序使用此库。现在我想将native-lib(一个c文件)添加到库模块中,并在库类中使用它。我对NDK不熟悉,所以我按照谷歌的指南创建了支持NDK的新项目,它可以正常工作。 然后我复制了cpp目录、CMakeList,并保持了项目的正确结构。 现在,项目编译成功,但是当我试图从Java类中调用本地函数时,它会崩溃。 异常:方法抛出'java.lang.UnsatisfiedLinkError'异常。

有关那个的任何消息吗? - jazzyjester
1个回答

2

当我编写引用其他本地库的Java库时,遇到了后续的ClassNotFoundException异常。虽然我没有像您一样使用NDK,但也许以下步骤(对我有帮助)可以为您提供一些新的想法:

  1. 将本地库(对我来说是OpenCV for Java)作为库在AndroidStudio中导入。
  2. 将本地源文件放在(已导入的)库的jniLibs文件夹中。
  3. 然后将该库导出为AAR文件。(制作模块 -> 从/build/outputs/aar/中取出AAR文件)
  4. 在我的库中使用AAR文件。这样,引用的本地库的类就可以在我的导出库中使用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接