9

我是关于 android 编程和 android studio 的新手。我为我的项目研究了人行横道嵌入 API,并尝试将其嵌入到 android studio 中。但我无法成功。即使我不确切知道如何嵌入具有 gradle 文件的 API。

也许gradle系统有问题?简而言之,如何逐步将 crosswalk-webview 嵌入到我的项目中?非常感谢你。

4

5 回答 5

30

以下:https ://diego.org/2015/01/07/embedding-crosswalk-in-android-studio/

  1. 打开 AndroidStudio 到 app 文件夹编辑 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);
    

在使用开箱即用的 WebView 失败后,我在 android 4.3 和 4.4 的 XWalkView 中成功使用了 WebRTC。我认为 android 5 Lollipop 可以与最新的 chromium 相提并论。

于 2015-03-09T08:36:32.830 回答
2

要嵌入项目或使用 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 ... />
于 2018-03-25T17:04:24.857 回答
0

感谢这只橡皮鸭——它真的帮助了我!

注意:如果您要添加人行横道来执行 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" />
于 2015-11-26T03:41:52.997 回答
0

这是另一个关于如何让 Crosswalk 进入 Android Studio 的教程,使用这种方法,您可以选择您想要定位的处理器架构,从而将 APK 文件大小减少到大约 20 mb,而不是使用上面的大约 40 mb方法。

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

在教程中创建资源文件夹时,请务必使用:File->New->Folder->Res Folder

在教程的最后还有一个 Github 链接,指向使用教程中描述的方法创建的功能项目: https ://github.com/zhsoft88/TestCrosswalkEmbed2

于 2016-06-07T23:51:00.467 回答
-1

这也是通过 html5 加载图像所必需的,如此处所示

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (mXwalkView != null) {
        mXwalkView.onActivityResult(requestCode, resultCode, data);
    }
}
于 2015-12-26T17:02:30.010 回答