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). Приложение загружалось правильно раньше. Логкат следует:

Xwalk аварии

В коде приложения сбой, кажется, происходит из следующей строки: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 все будет в порядке, когда мне удастся провести тестирование на устройстве.

Другие вопросы по тегам