苔丝二找不到 libpng.so

tess-two can't find libpng.so

我已按照苔丝二号的搭建说明进行操作 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

有人可以帮忙吗?

TessBaseAPI 中似乎缺少 System.loadLibrary("png") 调用,因此找不到库。

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

public class MyClass {

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

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

我听从了 Dmitry Zaitsev 的建议并感谢他,也解决了我的问题。

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

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

        nativeClassInit();
     }

更新这些文件后构建 tess-two 项目。在我的例子中,我使用 Eclipse 构建了它。 希望它也能解决您的问题。