tess-two can't find libpng.so

怎甘沉沦 提交于 2019-12-07 16:44:42

问题


I have followed building instructions for tess-two on Github

I build tess-two using NDK successfully and imported the library I am trying to run the test application provided on the same repository but whenever the application starts it gives the following exception: That error is caused once new TessBaseAPI(); is called.

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

Can anyone help with that?


回答1:


I have followed suggestion of Dmitry Zaitsev & thannks to him , solved my problem also .

Please update your TessBaseAPI.java from tess-two library project as below :

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

        nativeClassInit();
     }

Build tess-two project after updating these file . In my case I have build it using eclipse. Hope it should solve your problem as well.




回答2:


It seems like System.loadLibrary("png") call is missing in TessBaseAPI, therefore library can't be found.

Try to call System.loadLibrary("png") before calling new TessBaseAPI(). Typically this is done in static initialization block, like so:

public class MyClass {

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

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


来源:https://stackoverflow.com/questions/31833308/tess-two-cant-find-libpng-so

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!