crosswalk 初步使用

这里简单的说下 crossWalk 的配置;
我在学习 crosswalk 的时候,看到一篇博客,他所记录的已经是很完整的教程了: 点击查看 本文就根据该博客和官网说明,进行部分修改,补充;

首先 crosswalk 的 minsdk 是14,如果兼容需要14以下的,那么就没法了;

  1. 基础引入:
    和普通的一样;
    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 的文档可以查阅:
    点击查看
    版本号一览: 点击查看

  2. 注意的地方:
    这里的话是和引用的那篇博客差不多的,不过需要修改的一点是,最基础的权限只需要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" />
    
  3. 替换 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. 错误点:
    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即可

  1. 其他很多地方都是和 webview 类似的,我在上一篇博客里(点击查看)已经说得比较详细了;
    关于调用照相机和相册也已完全兼容;
    并且,同样的,我也创建了一个新的仓库用来放置,如果有需要可以前往查看 点击查看

完;

posted @ 2018-02-23 15:44  Grewer  阅读(974)  评论(0编辑  收藏  举报