Openh264 выбрасывает UnsatisfiedLinkError
Сегодня мы получили странный сбой. Во время первой установки приложение загружает и распаковывает openh264 во внутренний каталог приложения, происходит в потоке Schedulers.io() из rxAndroid. Это первый сбой такого рода (>5 тыс. Установок), и я нашел эту ссылку (кстати, очень интересный блог) с соответствующим сообщением об ошибке. Я не уверен, действительно ли кто-то пытался заменить библиотеку openH264 или кто-то пытался установить файл apk на устройство x86. Я все еще использую 1.4 openH264 и прочитал заметки о выпуске 1.5. Там нет ни намека на исправления безопасности.
Еще несколько подробностей об устройстве:
Android: 4.3
Производитель: Samsung
Модель: GT-I9300
И, наконец, вот журнал сбоя:
java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread.
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62)
at android.os.Handler.handleCallback(Handler.java:730)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5419)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/path/files/libopenh264.so" has bad ELF magic
at java.lang.Runtime.load(Runtime.java:330)
at java.lang.System.load(System.java:511)
at path.BeatMarker.init(BeatMarker.java:33)
at path.fragments.main.MainFragment.onOpenH264Done(MainFragment.java:475)
at path.fragments.main.MainPresenterImpl.onOpenH264Done(MainPresenterImpl.java:25)
at path.fragments.main.MainLoaderImpl$1.onCompleted(MainLoaderImpl.java:61)
at rx.observers.SafeSubscriber.onCompleted(SafeSubscriber.java:81)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:201)
at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:170)
at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55)
... 9 more
Я уверен, что здесь происходит сбой:
at path.BeatMarker.init(BeatMarker.java:33)
Вот эти строки:
File libOpenH264File = new File(context.getFilesDir(), "libopenh264.so");
System.load(libOpenH264File.getAbsolutePath()); //line 33
Получает вызов, когда загрузка и распаковка завершены.
Может ли ошибка возникнуть при загрузке библиотеки и потере сетевого подключения?
Любая помощь или подсказка приветствуется, заранее спасибо!:)