java.lang.UnsatisfiedLinkError:无法加载stlport_shared:findLibrary返回null(tess-two)

时间:2013-10-26 05:35:35

标签: java android android-ndk tesseract sqlcipher

我正在使用sqlcipher.jar加密android中的数据库并使用它的本机库

libs / armeabi文件夹

1)libdatabase_sqlcipher.so

2)libsqlcipher_android.so

3)libstlport_shared.so

libs / x86文件夹

1)libdatabase_sqlcipher.so

2)libsqlcipher_android.so

3)libstlport_shared.so

所有我导入的

和libs /文件夹中名为 sqlcipher.jar 的jar文件

现在每件事情都工作得很好,数据库正在提取,从sqlite读取也工作正常,我也没有在 SQLiteDatabase.loadLibs(context); 行<中获得任何错误/ p>

enter image description here 但是我想在我的项目中同时实现 OCR 来执行此操作我将从此http://code.google.com/p/tesseract-ocr/https://github.com/rmtheis/tess-two导入名为 tess-two 的项目有一个名为tess-two folder的库

我正在将该项目库导入到我的android项目中并且我清理了我的项目并在那时运行它我遇到了错误 SQLiteDatabase.loadLibs(context);

enter image description here

当我删除 tess-two 库并从设备上卸载并进行清理并构建并运行它工作正常没有错误发生时,我想在我的项目中也可以帮助我的OCR功能

4 个答案:

答案 0 :(得分:22)

我有同样的问题..我正在使用Android Studio,我已经从eclipse导入了应用程序到android studio。

我花了3-4个小时来找出解决方案。 这就是我为解决这个问题所做的工作..(仅适用于Android工作室) 将目录创建到src文件夹名称main和其他目录,如下图所示。在项目的主目录中,你可能有src文件夹之外的libs和assets文件夹,即eclipse结构。我们需要遵循Android Studio的结构.. enter image description here

了解更多详情..查看this链接...

有关SqlCipher的其他帮助,请检查this链接..

(我知道我回答这个问题有点迟,但它可能对某人有帮助。)

答案 1 :(得分:4)

我遇到了同样的问题。首先,检查是否正确导入了所有库。

在我的情况下,问题是当我们添加另一个库项目时,这些项目有一个armeabi_v7文件夹,所以显然如果优先于armeabi文件夹,这意味着将找不到sqlitecypher库。

在我们的例子中,解决方案只是删除新库上的armeabi_v7文件夹。

希望它有所帮助。

答案 2 :(得分:0)

您可以尝试更改该行:

APP_STL:= gnustl_static (在文件tess-two / tess-two / jni / Application.mk中)

于: APP_STL:= stlport_static

答案 3 :(得分:0)

加载程序无法找到所述库文件。所以,我决定将它与我的应用程序一起打包。它只有394KB

我从以下地址下载了libstlport_shared.so,并将其添加到lib / armeabi和lib / armeabi-v7a文件夹中,清理了项目并重建了它。现在它运行没有问题。

http://331312256.wodemo.net/browse/dl/156348/lib/armeabi/libstlport_shared.so?resolved=1

希望有所帮助