ExceptionInitializerError при использовании 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.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): at 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(собственный метод) 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 как библиотеку и сослался на него из своего проекта. Что случилось ?


person harveyslash    schedule 16.06.2014    source источник


Ответы (1)


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

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

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

его работа в порядке.

person Amit Prajapati    schedule 08.08.2014
comment
Вы можете установить для других архитектур, используя app_abi=all - person harveyslash; 08.08.2014
comment
Я смог, да. Если вы скомпилируете для всех архитектур, он также будет работать в genymotion. - person harveyslash; 08.08.2014