3

我已按照 Github上 tess-two 的构建说明进行操作

我使用 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

任何人都可以帮忙吗?

4

2 回答 2

4

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

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

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

        nativeClassInit();
     }

更新这些文件后构建 tess-two 项目。就我而言,我已经使用 eclipse 构建了它。希望它也能解决您的问题。

于 2015-08-06T06:57:58.807 回答
2

似乎System.loadLibrary("png")call 在 中丢失TessBaseAPI,因此找不到库。

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

public class MyClass {

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

    public void doStuff() {
        new TessBaseAPI();
    }
}
于 2015-08-05T19:43:58.647 回答