如何在我自己的android库模块中添加人行横道webview?

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

方法1:

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

  • 错误:(编译错误)

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

方法2:

  • 在我的图书馆项目中添加crosswalk aar文件

  • 添加aar文件的参考链接如何将.aar文件导入到Android Studio 1.1.0中,并在我的代码中使用它

  • 我从https://download.01.org/crosswalk/releases/crosswalk/android/stable/18.48.477.13/下载了Crosswalk Webview

  • 错误:(编译错误)

  • 无法解决:MyLIBApplication:xwalk_core_library_java:未指定

方法3:

  • 在我的图书馆项目中添加人行横道的jar文件

  • 下载链接https://download.01.org/crosswalk/releases/crosswalk/android/stable/18.48.477.13/

  • 错误:这种方法没有编译错误,但它给运行时错误是java.lang.NoClassDefFoundError:org.xwalk.core.R $ string

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

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

第1步:文件 – >新build – >导入模块

文件 - >新建 - >导入模块

第2步select模块,并根据需要重命名

选择模块,并根据需要重命名

第3步select所有选项

选择所有的选项

这里android工作室可能会要求你更新,更新它

在这里输入图像描述

步骤4处理模块依赖关系

处理模块依赖关系 在这里输入图像描述 在这里输入图像描述

在这之后,Gradle Build自动运行在这里我们已经完成了人行横道inport。

第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不支持

XWalkView支持很好

XWalkView支持很好

哈哈它的作品。


Follow是另一个旧的实现,你也可以参考这个好的[post]或doc 11 。

这里是源代码 。

下载适当的Crosswalk Android webview软件包,并从https://crosswalk-project.org/documentation/downloads.html解压缩它;

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

将crosswalk库中的其他内容复制到app / src / main / jniLibs /

制作一个Android资源目录res2,并将crosswalk 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); 

如果你想debuggingromote添加这个。

 XWalkPreferences.setValue(XWalkPreferences.REMOTE_DEBUGGING, true);