Android - падение Xwalk после миграции Oreo
Я хочу внести некоторые изменения в ориентацию приложения Android SDK 22 (5.1)
,
Я загрузил проект в Android Studio 3, получил сообщение об обновлении Gradle. Конечно, от этого все взрывается, поскольку новый Gradle обрабатывает зависимости, становится очень придирчивым. Я решил изо всех сил и просто сделать всю миграцию. В любом случае придется сделать это в какой-то момент.
Приложение использует XWalkView
(расширенный в классе) вместо родного Webview, так как мы хотим запустить WebGL. Xwalk встраивается и не публикуется.
Просто обновив файлы Gradle до новейших библиотек Lib, в основном изменив поддержку Android на последний и целевой SDK, происходит сбой приложения при запуске (непосредственно сообщение об ошибке) на устройствах Android 7+ (тестирование Oreo на emu). Приложение загружалось правильно раньше. Логкат следует:
В коде приложения сбой, кажется, происходит из следующей строки:XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
, который в классе расширяется Application
, который, в свою очередь, содержит только конфигурацию Debug/Release для используемых инструментов. Удаление указанной строки позволяет приложению работать должным образом до тех пор, пока оно фактически не попытается загрузить XWalkView
,
Приложение работает правильно на Android 4.4
(19 мин SDK для приложения), 5,0 (21) и 6,0 (23).
Я искал интернет для возможного решения, но еще не нашел что-то, что помогло. Я знаю, что crosswalk устарел и, вероятно, должен быть заменен, но поддержка WebGL не предусмотрена в Android, и я не вижу изменений в текущей графике в это время.
Если есть какая-либо другая информация, которая может быть полезна, дайте мне знать, и я предоставлю ее.
Надеюсь, что кто-то может пролить свет. Заранее спасибо.
РЕДАКТИРОВАТЬ:
После некоторой игры я обнаружил, что проблема связана с файлом библиотеки. Загрузка crosswalk.aar
Я обнаружил, что есть 2 версии этого:
- xwalk_core_library-23.53.589.4-arm.aar
- xwalk_core_library-23.53.589.4-arm64.aar
Я удалил maven версию и вручную включил файлы. Когда я использую бит arm64, я могу без проблем использовать приложение на платформе Android 7. Но затем я получаю тот же сбой xwalk в других версиях. В случае с библиотекой рук все возвращается к тому, что было раньше.
Вместе они не могут работать. Вы получаете Duplicate zip file
ошибка при сборке.
Итак, обновленный вопрос: есть ли способ указать, какой файл библиотеки использовать для каждой архитектуры? Я искал вокруг, но я не могу найти что-то.
1 ответ
Мне удалось решить проблему. Это была проблема совместимости с JNI библиотеки.
Загруженная библиотека была только в том числе armeabi-v7a
а также x86
Файлы ".so".
Что я сделал, так это вручную загрузил отсюда общие и arm64 версии библиотеки aar, разархивировал их, переместил содержимое папки arm64-v8a jni на другую сторону и затем использовал jar cvf [yourLibName].aar -C [folderName]/ .
(не забывайте точку в конце), чтобы переупаковать аар.
Кажется, сейчас все работает нормально. Надеюсь, с Oreo все будет в порядке, когда мне удастся провести тестирование на устройстве.