Встроить пешеходный переход в андроид студии

Я новичок в программировании Android и Android Studio. Я исследовал API для встраивания crosswalk для своего проекта и попытался внедрить его в Android Studio. Но я не мог быть успешным. Даже я не знаю точно, как можно встроить API, который имеет файл Gradle или нет.

Может быть, есть проблема с системой gradle? Вкратце, как я могу шаг за шагом встроить crosswalk-webview в свой проект с помощью android studio? Большое спасибо вам.

5 ответов

Следующий: https://diego.org/2015/01/07/embedding-crosswalk-in-android-studio/

  1. Откройте AndroidStudio для просмотра проекта в папке приложения edit build.gradle:

    repositories {
    maven {
    url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2'}}
    
    
    dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.3'
    compile 'org.xwalk:xwalk_core_library:10.39.235.15'}
    
  2. Синхронизировать проект.

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

    <org.xwalk.core.XWalkView
    android:id="@+id/xwalkWebView"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000000"
    />
    
  4. В деятельности или фрагменте:

    import org.xwalk.core.XWalkPreferences;
    import org.xwalk.core.XWalkView;
    
  5. в onCreate:

    XWalkView xWalkWebView=(XWalkView)findViewById(R.id.xwalkWebView);
    xWalkWebView.clearCache(true);
    xWalkWebView.load("http://...", null);
    // turn on debugging
    XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);
    

Я успешно использовал WebRTC в XWalkView на Android 4.3 и 4.4 после сбоя с готовым WebView. Я думаю, что Android 5 Lollipop находится на одном уровне с последним хромом.

Для встраивания в новые проекты или сборки с помощью Android Studio 3 необходимо изменить следующие четыре файла.

Это образец app.gradle файл

apply plugin: 'com.android.application'
android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "online.saai.crosswalkandroid3"
        minSdkVersion 17
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

repositories {
    maven {
        url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2/'
    }
}

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}

dependencies {
    compile 'org.xwalk:xwalk_core_library:23.53.589.4'
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}

Что нужно учитывать,

  • Чтобы использовать последний пешеходный переход 23.53.589.4 версия min sdk должна быть>= 16, здесь я использовал 17, т.е. minSdkVersion 17
  • хранилище maven repositories { ... } и компилировать зависимость compile 'org.xwalk:xwalk_core_library:23.53.589.4' нужно дать скачать последний пешеходный переход
  • Примечание. Необходимо заставить gradle использовать старую библиотеку поддержки Android, поскольку в версии 28 существует несовместимость configurations.all { ... }

Как только это будет сделано, замените ваш .xml файл (activity_main.xml) со следующим содержимым, чтобы он мог использовать представление пешеходного перехода

<?xml version="1.0" encoding="utf-8"?>
<org.xwalk.core.XWalkView android:id="@+id/activity_main"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
</org.xwalk.core.XWalkView>

Сейчас MainActivity.java

public class MainActivity extends Activity {
  private XWalkView mXWalkView;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    mXWalkView = (XWalkView) findViewById(R.id.activity_main);
    mXWalkView.load("http://crosswalk-project.org/", null);
  }
}

Наконец, позвольте вашему приложению использовать Интернет и другие разрешения, которые вам нужны в вашем приложении, перейдите в "AndroidManifest.xml" и добавьте эти разрешения. Вот образец

<manifest ... />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    ...
<application ... />

Спасибо за эту Rubber Duck - она ​​мне очень помогла!

Примечание: если вы добавляете crosswalk для выполнения webRTC, вам нужно добавить их в манифест, иначе исходящее видео / аудио не будет работать (возможно, вам не нужны все, но у меня это работает!);

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<uses-feature
    android:name="android.hardware.camera"
    android:required="true" />

Вот еще одно руководство по установке Crosswalk в Android Studio. С помощью этого метода вы можете выбрать архитектуру процессора, на которую хотите ориентироваться, и тем самым уменьшите размер файла APK примерно до 20 МБ вместо примерно 40 МБ, которые вы использовали при использовании вышеупомянутого. метод.

http://www.zhuatang.com/en/as-tips-3.jsp

При создании папки ресурсов в руководстве обязательно используйте: Файл-> Создать-> Папка->Res Folder

В конце учебника есть также ссылка Github на работающий проект, созданный с помощью метода, описанного в учебнике: https://github.com/zhsoft88/TestCrosswalkEmbed2

Это необходимо также для загрузки изображений через HTML5, как подсказал здесь

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (mXwalkView != null) {
        mXwalkView.onActivityResult(requestCode, resultCode, data);
    }
}
Другие вопросы по тегам