爬坑之Android Studio 下使用crosswalk,使用maven依赖库打包

先贴官网:https://crosswalk-project.org/blog/这个有中文版的,还是比较考虑大陆开发人员体验的。


1. As下的一个module在build.gradle文件中添加如下的申明,标示从指定仓库获取我们需要依赖的库

repositories {
    maven { url 'https://download.01.org/crosswalk/releases/crosswalk/android/maven2' }
}

//指定编译的lib


compile('org.xwalk:xwalk_core_library:22.52.561.4') {
    exclude group: 'com.android.support', module: 'support-v4'
    exclude group: 'com.google.code.findbugs', module: 'jsr305'
    exclude module: 'jsr305:2.0.1'
}
2.manifest清单下添加权限


  1. <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
  2. <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
  3. <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
  4. <uses-permission android:name="android.permission.INTERNET" />
  5. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
3.在Activity中使用XwalkView,activity要 extends XWalkActivity,不然会报错,初始化错误:

android.view.InflateException: Binary XML file line #2: Error inflating class org.xwalk.core.XWalkView

下面是我写的东西:
爬坑之Android Studio 下使用crosswalk,使用maven依赖库打包
:那些防止内存泄漏的我就省略不写了,官网有。

遇到的问题:

第一个问题:就是上面的初始化问题。

第二个问题:android studio  util.zip.ZipException: duplicate entry

  解决办法:发现一个解决这类问题很好用的办法,不用每个build.gradle看过来一遍,然后对比。这个方法是自动列举出来了,废话不多说,直接。。直接贴链接https://www.linkedin.com/pulse/how-find-dependencies-particular-dependency-gradle-hesamedin-kamalan-1(ps:需要有英文阅读能力),其实就是terminal命令查看导入第三方结构:命令:gradlew -q app:dependencies 。我的问题是jsr305:2.0.1 这个冲突,当时恶心死我了快!

第三个问题:Mismatch of CPU Architecture
The Crosswalk Project Service must be updated to match the CPU architecture of the device. Please install it from the app store, then restart app。就是这个看不出所以然的东西,官方文档给出的解决方案是查找手机里面哪个app也用了这个Crosswalk,用这个app还得是在app store上架的,WTF!!!后来灵光一闪,是so包不兼容的问题,然后就实践,在android下加入以下代码

android {

productFlavors {
//......其他配置
    armv7 {

        ndk {
            abiFilters "armeabi-v7a"
        }
    }
    x86 {
        ndk {
            abiFilters "x86"
        }
    }
}
}

ok,问题完美解决!

还有,为啥不贴demo呢,因为我懒~~