这里简单的说下 crossWalk 的配置;
我在学习 crosswalk 的时候,看到一篇博客,他所记录的已经是很完整的教程了: 点击查看 本文就根据该博客和官网说明,进行部分修改,补充;
首先 crosswalk 的 minsdk 是14,如果兼容需要14一下的,那么就没法了;
- 基础引入:
和普通的一样;
1.1 在 /build.gradle 里的 allprojects/repositories 添加allprojects { repositories { google() jcenter() maven { url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2' } }
}
1.2 在 app/build.gradle 里的 dependencies 添加:
compile 'org.xwalk:xwalk_core_library:23.53.589.4'
```
最后面的数字呢,代表着版本号,不同的版本,支持度也不一样,比如最前面的数字,如果是20以上,那么 minsdk 也是需要16以上的;
而且最重要的是,不同的版本,对应的 API 也会不同;不过官网有 API 的文档可以查阅:
点击查看
版本号一览: 点击查看
-
注意的地方:
这里的话是和引用的那篇博客差不多的,不过需要修改的一点是,最基础的权限只需要3个,如果还需要其他的,再进行添加;<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" />
-
替换 webview:
<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>
-
错误点:
4.1 如果你 compileSdkVersion 是26,并且在 build 时报
java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' appears in /data/app/com.example.apple.yuncai-1/split_lib_dependencies_apk.apk)
该错误, 解决方法是使用27版本,
直接将 app/build.gradle 里的26改为27,dependencies里改为一下即可:
implementation 'com.android.support:appcompat-v7:27.0.2'
4.2 build 时报错
Error:Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'.
> com.android.builder.dexing.DexArchiveMergerException: Unable to merge dex
clean project
即可
- 其他很多地方都是和 webview 类似的,我在上一篇博客里(点击查看)已经说得比较详细了;
关于调用照相机和相册也已完全兼容;
并且,同样的,我也创建了一个新的仓库用来放置,如果有需要可以前往查看 点击查看
完;