Как добавить веб-просмотр crosswalk в моем собственном модуле библиотеки Android?

Я занимаюсь разработкой модуля библиотеки Android, который должен включать Crosswalk Webview. Я создаю библиотеку с помощью Github Sonatype (https://github.com/sonatype/). Он отлично работает без Crosswalk Webview. Я попробовал следующие 3 метода включить Crosswalk.

Способ 1:

  • Добавить библиотеку Crosswalk Webview в моем приложении

  • Ошибка: (Ошибка компиляции)

  • Не удалось решить: org.xwalk: xwalk_core_library: 18.48.477.13

Способ 2:

Способ 3:

  • Добавить файл javascript в моем библиотечном проекте

  • Ссылка на скачивание https://download.01.org/crosswalk/releases/crosswalk/android/stable/18.48.477.13/

  • Ошибка: этот метод не содержит ошибки компиляции, но дает ошибку времени выполнения, которая была java.lang.NoClassDefFoundError: org.xwalk.core.R $ string

Примечание. Я пробовал файлы как jar (обычный, общий режим)

Ответ 1

Я создаю новое приложение из webview для XWalkView для рендеринга демонстрационного трекера three.js stl, который не поддерживается веб-просмотром независимо от WebGlRenderer или CanvasRenderer. Ниже приведен процесс использования модуля кроссворда:

Шаг 1: Файл- > Новый- > Модуль импорта

Файл- > Новый > модуль импорта

шаг 2 выберите модуль и переименуйте, если вам нужно

выберите модуль и переименуйте, если вам нужно

шаг 3 выберите все опции

выбрать все опции

здесь студия Android может попросить вас обновить, обновить ее

введите описание изображения здесь

шаг 4 обрабатывает зависимость модуля

обрабатывать зависимость модуля введите описание изображения здесь введите описание изображения здесь

После этого автоматически запускается Gradle Build Running Здесь мы закончили пешеходный переход в порту.

шаг 5 использует XWalkView

добавьте эти привилегии в AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

добавить аппаратное ускорение в приложение node AndroidManifest.xml

android:hardwareAccelerated="true"

добавить это в файл макета

<org.xwalk.core.XWalkView 
 android:id="@+id/xWalkView"
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent">
</org.xwalk.core.XWalkView>

добавить это в действие

XWalkView mXWalkView = (XWalkView) findViewById(R.id.xWalkView);
mXWalkView.load("http://192.168.1.42/test", null);

Здесь мы закончили в результате я использую webview и XWalkView для рендеринга загрузчика tr.js STL.

веб-просмотр не поддерживается

webview not support

XWalkView поддерживает хорошо

XWalkView поддерживает хорошо

Ха-ха, это работает.


Следуйте за другой старой реализацией, и вы также можете обратиться к этому хорошему [сообщению] или doc 11.

здесь находится исходный код.

Загрузите надлежащий пакет веб-просмотра Crosswalk Android и распакуйте его из https://crosswalk-project.org/documentation/downloads.html

Скопируйте xwalk_core_library_java.jar из crosswalk libs в приложение/libs/в проект студии Android и напишите клик по файлу, выберите "Добавить как библиотеку"

Скопируйте другое содержимое в папку crosswalk для приложения /src/main/jniLibs/

Создайте резервную копию ресурса Android res2 и скопируйте файлы в crosswalk res dir в этот каталог.

Добавьте это в AndroidMenifest.xml

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />


and add android:hardwareAccelerated="true" to application node.to use hardware acceleration which is needed by crosswalk webview

добавить это в макет

<org.xwalk.core.XWalkView android:id="@+id/webview"
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
    </org.xwalk.core.XWalkView>

добавьте это в Activity

XWalkView mXWalkView = (XWalkView) findViewById(R.id.webview);
    mXWalkView.load("http://xxxxxx.com", null);

если вы хотите отладить romote, добавьте это.

XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);