我正在开发一个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:
在我的图书馆项目中添加crosswalk aar文件
添加aar文件的参考链接How to import a .aar file into Android Studio 1.1.0 and use it in my code
我已经从中下载了Crosswalk Webview https://download.01.org/crosswalk/releases/crosswalk/android/stable/18.48.477.13/
错误:(编译错误)
无法解决:MyLIBApplication:xwalk_core_library_java:未指定
方法3:
在我的图书馆项目中添加crosswalk jar文件
下载链接 https://download.01.org/crosswalk/releases/crosswalk/android/stable/18.48.477.13/
错误:此方法没有编译错误,但它给出了运行时错误 java.lang.NoClassDefFoundError:org.xwalk.core.R $ string
注意:我尝试了两种jar(普通,共享模式)文件
答案 0 :(得分:7)
我从webview创建一个新的应用程序到XWalkView来渲染three.js stl加载器演示,无论WebGlRenderer还是CanvasRenderer都不支持webview。 以下是如何使用人行横道模块的过程:
第1步:文件 - >新建>导入模块
步骤2选择模块并在需要时重命名
步骤3选择所有选项
这里的android studio可能会要求你更新,更新它
第4步处理模块依赖
此后,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不支持
XWalkView支持
哈哈,它有效。
关注是另一个旧的实现,您也可以参考此[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);