【问题标题】:ExceptionInitializerError when using Mupdf as library project使用 Mupdf 作为库项目时出现 ExceptionInitializerError
【发布时间】:2014-08-06 00:24:30
【问题描述】:

我为 android 构建了 mupdf,它作为一个项目本身运行良好。我的目标是使用我的主要项目向它发送意图。这是我正在使用的代码(来自我的项目):

 Uri uri = Uri.parse(Environment.getExternalStorageDirectory()+ "/GeneratedPageNumber.pdf");

             Intent intent = new Intent(MainActivity.this,com.artifex.mupdfdemo.MuPDFActivity.class);

             intent.setAction(Intent.ACTION_VIEW);

             intent.setData(uri);

             startActivity(intent);

我收到此错误:

06-16 13:42:14.736:E/AndroidRuntime(9479):致命异常:主要 06-16 13:42:14.736: E/AndroidRuntime(9479): java.lang.ExceptionInInitializerError 06-16 13:42:14.736: E/AndroidRuntime(9479):在 com.artifex.mupdfdemo.MuPDFActivity.openFile(MuPDFActivity.java:213) 06-16 13:42:14.736: E/AndroidRuntime(9479): 在 com.artifex.mupdfdemo.MuPDFActivity.onCreate(MuPDFActivity.java:309) 06-16 13:42:14.736: E/AndroidRuntime(9479): 在 android.app.Activity.performCreate(Activity.java:4465) 06-16 13:42:14.736:E/AndroidRuntime(9479):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051) 06-16 13:42:14.736: E/AndroidRuntime(9479): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 06-16 13:42:14.736: E/AndroidRuntime(9479): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 06-16 13:42:14.736: E/AndroidRuntime(9479): 在 android.app.ActivityThread.access$600(ActivityThread.java:123) 06-16 13:42:14.736:E/AndroidRuntime(9479):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 06-16 13:42:14.736: E/AndroidRuntime(9479): 在 android.os.Handler.dispatchMessage(Handler.java:99) 06-16 13:42:14.736:E/AndroidRuntime(9479):在 android.os.Looper.loop(Looper.java:137) 06-16 13:42:14.736: E/AndroidRuntime(9479):在 android.app.ActivityThread.main(ActivityThread.java:4424) 06-16 13:42:14.736:E/AndroidRuntime(9479):在 java.lang.reflect.Method.invokeNative(Native Method) 06-16 13:42:14.736:E/AndroidRuntime(9479):在 java.lang.reflect.Method.invoke(Method.java:511) 06-16 13:42:14.736: E/AndroidRuntime(9479):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:825) 06-16 13:42:14.736: E/AndroidRuntime(9479): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:592) 06-16 13:42:14.736:E/AndroidRuntime(9479):在 dalvik.system.NativeStart.main(本机方法)06-16 13:42:14.736: E/AndroidRuntime(9479):引起:java.lang.UnsatisfiedLinkError: 无法加载 mupdf:findLibrary 返回 null 06-16 13:42:14.736: E/AndroidRuntime(9479):在 java.lang.Runtime.loadLibrary(Runtime.java:365) 06-16 13:42:14.736: E/AndroidRuntime(9479):在 java.lang.System.loadLibrary(System.java:535) 06-16 13:42:14.736: E/AndroidRuntime(9479):在 com.artifex.mupdfdemo.MuPDFCore.(MuPDFCore.java:14)

请注意,MuPDF 项目的构建本身运行良好,因此您几乎可以排除存在构建错误的事实。

我已将 Mupdf 项目标记为库,并从我的项目中引用了它。 怎么了?

【问题讨论】:

    标签: android eclipse android-intent android-ndk mupdf


    【解决方案1】:

    我有同样的问题,我得到了解决方案,

    问题是我尝试在 genymotion 上运行项目,而 Genymotion 是一个 x86 平台,所以将应用程序编译为目标 x86。在 MuPdf 必须是 ARM

    您也许可以手动安装 ARM 支持:http://forum.xda-developers.com/showthread.php?t=2528952

    它工作正常。

    【讨论】:

    • 您可以使用 app_abi=all 为其他架构安装
    • 我能做到,是的。如果你为所有架构编译,它也会在 genymotion 中运行
    猜你喜欢
    • 2014-08-05
    • 1970-01-01
    • 2013-01-04
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多