我正在研究APV pdf阅读器。我面临System.loadLibrary("pdfview2");
错误。它正在给java.lang.UnsatisfiedLinkerror
如何解决这个问题?我也安装了Android-NDK,但没有得到如何加载本机库。完全混乱。请建议我解决此问题的方法。
09-26 12:51:44.243: E/AndroidRuntime(2537): FATAL EXCEPTION: main
09-26 12:51:44.243: E/AndroidRuntime(2537): java.lang.ExceptionInInitializerError
09-26 12:51:44.243: E/AndroidRuntime(2537): at cx.hell.android.pdfview.OpenFileActivity.getPDF(OpenFileActivity.java:541)
09-26 12:51:44.243: E/AndroidRuntime(2537): at cx.hell.android.pdfview.OpenFileActivity.startPDF(OpenFileActivity.java:502)
09-26 12:51:44.243: E/AndroidRuntime(2537): at cx.hell.android.pdfview.OpenFileActivity.onCreate(OpenFileActivity.java:219)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.os.Looper.loop(Looper.java:123)
09-26 12:51:44.243: E/AndroidRuntime(2537): at android.app.ActivityThread.main(ActivityThread.java:3683)
09-26 12:51:44.243: E/AndroidRuntime(2537): at java.lang.reflect.Method.invokeNative(Native Method)
09-26 12:51:44.243: E/AndroidRuntime(2537): at java.lang.reflect.Method.invoke(Method.java:507)
09-26 12:51:44.243: E/AndroidRuntime(2537): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
09-26 12:51:44.243: E/AndroidRuntime(2537): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
09-26 12:51:44.243: E/AndroidRuntime(2537): at dalvik.system.NativeStart.main(Native Method)
09-26 12:51:44.243: E/AndroidRuntime(2537): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load pdfview2: findLibrary returned null
09-26 12:51:44.243: E/AndroidRuntime(2537): at java.lang.Runtime.loadLibrary(Runtime.java:429)
09-26 12:51:44.243: E/AndroidRuntime(2537): at java.lang.System.loadLibrary(System.java:554)
09-26 12:51:44.243: E/AndroidRuntime(2537): at cx.hell.android.lib.pdf.PDF.<clinit>(PDF.java:25)
09-26 12:51:44.243: E/AndroidRuntime(2537): ... 16 more
嗨我附上了日志报告。给出: - 引起:java.lang.UnsatisfiedLinkError:无法加载pdfview2:findLibrary返回null
答案 0 :(得分:3)
构建项目后,在libs /文件夹中查找生成的.so。如果您正在为ARM构建,是否有一个带有.so的armeabi或armeabi-v7a文件夹?您可以使用 APP_ABI 变量在jni / Application.mk中设置要支持的体系结构。
APP_ABI := armeabi armeabi-v7a x86 mips
将为所有可能支持的体系结构构建您的库。
不要忘记Android的动态链接器是哑的,不会自动加载库依赖项。例如,如果您正在使用带有gnustl_shared的C ++代码,则需要在链接到它的任何库之前加载它。
static {
System.loadLibrary("gnustl_shared");
System.loadLibrary("a_cplusplus_library");
}
答案 1 :(得分:0)
确保你的libs文件夹中有libpdfview2.so ..
http://code.google.com/p/apv/issues/detail?id=42
Android - 'Couldn't load Foo: findLibrary returned null'
答案 2 :(得分:0)
根据我的经验,这种失败的另一个原因是存在libs / armeabi而不是libs / armeabi-v7a。将libs / armeabi的内容复制到名为libs / armeabi-v7a的新文件夹中。
答案 3 :(得分:0)
1-确保本机函数Java_package_className_methodName
的名称2- APP_ABI:= all64 //在jni / Application.mk中定义