首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Android中使用javacpp + openblas

在Android中使用javacpp + openblas
EN

Stack Overflow用户
提问于 2017-03-27 05:43:01
回答 1查看 546关注 0票数 1

我正在尝试将javacpp的openblas预设集成到我的Android应用程序中。我已经在Github中创建了一个测试应用程序来说明我的问题。该应用程序只是在MainActivity.onCreate()方法中运行来自https://github.com/bytedeco/javacpp-presets/tree/master/openblas的示例代码。

我的gradle构建依赖项如下:

代码语言:javascript
复制
compile 'org.bytedeco:javacpp:1.3.2'
compile 'org.bytedeco.javacpp-presets:openblas:0.2.19-1.3'
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.2.19-1.3', classifier: 'android-x86'
compile group: 'org.bytedeco.javacpp-presets', name: 'openblas', version: '0.2.19-1.3', classifier: 'android-arm'

当我在模拟器中运行应用程序时,我得到:

代码语言:javascript
复制
     java.lang.UnsatisfiedLinkError: No implementation found for int org.bytedeco.javacpp.openblas.LAPACKE_dgels(int, byte, int, int, int, double[], int, double[], int) (tried Java_org_bytedeco_javacpp_openblas_LAPACKE_1dgels and Java_org_bytedeco_javacpp_openblas_LAPACKE_1dgels__IBIII_3DI_3DI)
      at org.bytedeco.javacpp.openblas.LAPACKE_dgels(Native Method)
      at org.androidopenblas.ExampleDGELSrowmajor.runExample(MainActivity.java:80)
      at org.androidopenblas.MainActivity.onCreate(MainActivity.java:19)
      ...

我是否遗漏了一些依赖项?

EN

回答 1

Stack Overflow用户

发布于 2017-05-22 23:04:23

我不太熟悉Maven的处理方式,无法重现错误。

该错误表明Android试图定位未链接的JNI导出的c++函数。

但是如果我在Android Studio中简单地创建你的项目,我会得到一个链接器错误:'e/linker: library "/system/lib/libdl.so"'。这是因为安卓在运行时没有定位到jniopenblas.so

如果我提取libjniopenblas.solibopenblas.so并显式地将它们放在app/main/jniLibs/armeabi-v7a/中(创建了目录),并将指定的abiFilters: 'armeabi-v7a'添加到appbuild.gradle中,错误就会解决,项目会编译并运行。

因此,也许-安卓无法在openblas-android-arm.jar中定位静态库

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43034915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档