android UnsatifiedLinkError:找不到库

android UnsatifiedLinkError:找不到库,android,android-ndk,Android,Android Ndk,我从git存储库中签出了coolreader 3。 我尝试在eclipse中构建它,但在运行时,它会崩溃,并出现以下错误: 应用程序Cool Reader(process.org.coolreader)意外停止。请再试一次 以下是logcat的红色部分: 08-27 02:54:24.553: ERROR/AndroidRuntime(223): Uncaught handler: thread BackgroundThread44c32540 exiting due to uncaught e

我从git存储库中签出了coolreader 3。 我尝试在eclipse中构建它,但在运行时,它会崩溃,并出现以下错误:

应用程序Cool Reader(process.org.coolreader)意外停止。请再试一次

以下是logcat的红色部分:

08-27 02:54:24.553: ERROR/AndroidRuntime(223): Uncaught handler: thread BackgroundThread44c32540 exiting due to uncaught exception 08-27 02:54:24.583: ERROR/AndroidRuntime(223): java.lang.UnsatisfiedLinkError: Library cr3engine-45-15 not found 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at java.lang.Runtime.loadLibrary(Runtime.java:489) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at java.lang.System.loadLibrary(System.java:557) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at org.coolreader.crengine.Engine.installLibrary(Engine.java:837) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at org.coolreader.crengine.Engine.init(Engine.java:745) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at org.coolreader.crengine.Engine.access$10(Engine.java:742) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at org.coolreader.crengine.Engine$4.run(Engine.java:565) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at android.os.Handler.handleCallback(Handler.java:587) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at android.os.Handler.dispatchMessage(Handler.java:92) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at android.os.Looper.loop(Looper.java:123) 08-27 02:54:24.583: ERROR/AndroidRuntime(223): at org.coolreader.crengine.BackgroundThread.run(BackgroundThread.java:120) engine.java中的第837行:

System.loadLibrary(LIBRARY_NAME); 系统加载库(库名称); engine.java中的库名称由以下设置:

static final private String LIBRARY_NAME = "cr3engine-45-15"; 静态最终私有字符串库\u NAME=“cr3engine-45-15”;
因为我从存储库下载了代码,所以它应该可以在没有任何修改的情况下工作。我不明白它为什么不起作用。

这些不是标准名称,因为它们缺少lib前缀

System.loadLibrary("lept");
System.loadLibrary("tess");
这将导致搜索liblept.so,它不是您拥有的文件。为库指定标准名称,或指定实际文件名,包括它最终安装在要安装的设备上的路径

System.load(("lept") 
//rather than 
System.loadLibrary().

如果是未满足的链接错误,那么在没有看到您的代码的情况下,唯一的假设是您的代码试图加载共享库liblept。因此,该库在该路径上不可用。另外,您正在使用的代码要么在任何lib或内部包目录中都有liblept.so文件,要么您必须使用Android NDK生成(构建)该共享库,请尝试以下

这些不是标准名称,因为它们缺少lib前缀

System.loadLibrary("lept");
System.loadLibrary("tess");
这将导致搜索liblept.so,它不是您拥有的文件。为库指定标准名称,或指定实际文件名,包括它最终安装在要安装的设备上的路径

System.load(("lept") 
//rather than 
System.loadLibrary().

如果是未满足的链接错误,那么在没有看到您的代码的情况下,唯一的假设是您的代码试图加载共享库liblept。因此,该库在该路径上不可用。另外,您正在使用的代码是在任何lib或内部包目录中都有liblept.so文件,或者您必须使用Android NDK生成(构建)该共享库,请尝试以下

谢谢。4年前我在做某件事的时候问过这个问题。从那以后,我直到最近才开始编程android。不管怎样,谢谢。看起来很有帮助。我也喜欢阅读上面提到的教程。谢谢。4年前我在做某件事的时候问过这个问题。从那以后,我直到最近才开始编程android。不管怎样,谢谢。看起来很有帮助。我还喜欢阅读提到的教程。