Ошибка ExceptionInitializerError при использовании Mupdf в качестве проекта библиотеки

#android #eclipse #android-intent #android-ndk #mupdf

#Android #eclipse #android-намерение #android-ndk #mupdf

Вопрос:

Я создал mupdf для Android, и он отлично работает как сам проект. Моя цель — отправить ему намерения, используя мой основной проект. Это код, который я использую (из моего проекта):

  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): ФАТАЛЬНОЕ ИСКЛЮЧЕНИЕ: main 06-16 13:42:14.736: E / AndroidRuntime(9479): java.lang.Ошибка инициализации исключений 06-16 13:42:14.736: E/AndroidRuntime(9479): в com.artifex.mupdfdemo.MuPDF factivity.OpenFile(MuPDF factivity.java:213) 06-16 13:42:14.736: E/AndroidRuntime(9479): на com.artifex.mupdfdemo.MuPDF factivity.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-1613: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.Метод.вызывающий (собственный метод) 06-16 13:42:14.736: E/AndroidRuntime(9479): в java.lang.reflect.Метод.invoke(Метод.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 как библиотеку и сослался на него из своего проекта. Что не так?

Ответ №1:

у меня такая же проблема, я нашел решение,

Проблема в том, что я пытаюсь запустить проект на genymotion, а Genymotion — платформа x86, поэтому скомпилируйте приложение для целевого x86. в MuPDF должно быть ARM,

Возможно, вы сможете установить поддержку ARM вручную: http://forum.xda-developers.com/showthread.php?t=2528952

все работает нормально.

Комментарии:

1. Вы можете установить для других архитектур, используя app_abi=all

2. Я смог, да. Если вы скомпилируете для всех архитектур, он также будет выполняться в genymotion