tess-two找不到libpng.so

时间:2015-08-05 13:00:15

标签: android tesseract tess-two

我已经按照建立了tess-two的说明 Github

我使用NDK成功构建了tess-two并导入了库 我正在尝试运行在同一存储库上提供的测试应用程序,但每当应用程序启动时,它都会出现以下异常: 一旦调用new TessBaseAPI();,就会导致该错误。

dlopen("/data/app-lib/com.datumdroid.android.ocr.simple-2/liblept.so") failed: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libpng.so" needed by "liblept.so"; caused by load_library(linker.cpp:745): library "libpng.so" not found

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

我遵循了Dmitry Zaitsev& amp;对他而言,也解决了我的问题。

请从tess-two库项目更新您的TessBaseAPI.java,如下所示:

   static {
        System.loadLibrary("png");
        System.loadLibrary("lept");
        System.loadLibrary("tess");

        nativeClassInit();
     }

更新这些文件后构建tess-two项目。在我的情况下,我使用eclipse构建它。 希望它也能解决你的问题。

答案 1 :(得分:2)

System.loadLibrary("png")似乎缺少TessBaseAPI来电,因此无法找到库。

尝试在致电System.loadLibrary("png")之前致电new TessBaseAPI() 。通常,这是在static初始化块中完成的,如下所示:

public class MyClass {

    static {
        System.loadLibrary("png");
    }

    public void doStuff() {
        new TessBaseAPI();
    }
}