使用javacpp+;Android中的openblas

使用javacpp+;Android中的openblas,android,openblas,javacpp,Android,Openblas,Javacpp,我正在尝试将javacpp的openblas预置集成到我的Android应用程序中。我已经创建了一个测试应用程序来说明我的问题。应用程序只是从方法内部运行示例代码 我的gradle构建依赖项如下所示: 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:

我正在尝试将javacpp的openblas预置集成到我的Android应用程序中。我已经创建了一个测试应用程序来说明我的问题。应用程序只是从方法内部运行示例代码

我的gradle构建依赖项如下所示:

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'
在emulator中运行应用程序时,我得到:

     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)
      ...

我是否缺少一些依赖项?

我不太熟悉Maven的工作方式,无法重现错误

错误提示Android试图找到一个没有链接的JNI导出C++函数。 但是如果我在Android Studio中简单地创建您的项目,我会得到一个链接器错误:

'e/linker:library”/system/lib/libdl.so“
。这是因为Android在运行时没有定位jniopenblas.so

如果我提取
libjniopenblas.so
libopenblas.so
并显式地将它们放入
app/main/jniLibs/armeabi-v7a/
(创建目录)并将指定的
abiFilters:'armeabi-v7a'
添加到[app]build.gradle中,错误将得到解决,项目将编译并运行


因此,也许-Android无法找到openblas Android arm.jar中的静态库?

我对Maven的操作方式不太熟悉,无法重现错误

错误提示Android试图找到一个没有链接的JNI导出C++函数。 但是如果我在Android Studio中简单地创建您的项目,我会得到一个链接器错误:

'e/linker:library”/system/lib/libdl.so“
。这是因为Android在运行时没有定位jniopenblas.so

如果我提取
libjniopenblas.so
libopenblas.so
并显式地将它们放入
app/main/jniLibs/armeabi-v7a/
(创建目录)并将指定的
abiFilters:'armeabi-v7a'
添加到[app]build.gradle中,错误将得到解决,项目将编译并运行

所以也许-Android无法找到openblas Android arm.jar中的静态库