如何在我自己的android库模块中添加crosswalk webview?

时间:2016-11-25 10:30:49

标签: android android-studio webview shared-libraries crosswalk

我正在开发一个Android库模块,该模块必须包含Crosswalk Webview。我使用Github Sonatype(https://github.com/sonatype/)创建库。没有Crosswalk Webview,它可以正常工作。我尝试了以下3种方法来包含Crosswalk。

方法1:

  • 在我的图书馆项目应用程序gradle中添加Crosswalk Webview库

  • 错误:(编译错误)

  • 无法解决:org.xwalk:xwalk_core_library:18.48.477.13

方法2:

方法3:

注意:我尝试了两种jar(普通,共享模式)文件

1 个答案:

答案 0 :(得分:7)

我从webview创建一个新的应用程序到XWalkView来渲染three.js stl加载器演示,无论WebGlRenderer还是CanvasRenderer都不支持webview。 以下是如何使用人行横道模块的过程:

第1步:文件 - >新建>导入模块

File->New->Import Module

步骤2选择模块并在需要时重命名

select the module and rename if you need

步骤3选择所有选项

choose all the option

这里的android studio可能会要求你更新,更新它

enter image description here

第4步处理模块依赖

process the module dependency enter image description here enter image description here

此后,Gradle Build会自动运行 我们在这里完成了人行横道。

第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" />

将硬件加速添加到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渲染three.js STL加载器的结果。

webview不支持

webview not support

XWalkView支持

XWalkView supports well

哈哈,它有效。

关注是另一个旧的实现,您也可以参考此[post]或doc 11

这是source code

下载正确的Crosswalk Android webview包并从https://crosswalk-project.org/documentation/downloads.html

解包

将xwalk_core_library_java.jar从crosswalk libs复制到android studio项目中的app / libs /,然后点击该文件,选择“Adds As Library”

将crosswalk libs下的其他内容复制到app / src / main / jniLibs /

创建一个Android资源目录res2,并将人行横道res目录中的文件复制到此目录。

将此添加到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>

将此添加到活动

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

如果你想调试romote添加这个。

XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);