今天Gradle升级了发现cordova项目报错了

今天Gradle升级了发现cordova项目报错了,如下


最后发现原来是因为android support library互相不兼容导致的,这些support library的版本不一致,导致项目中Crosswalk插件里面报了android:attr/fontVariationSettings not found等等这些错误,好了找到问题解决就快了:让这些support library强制统一版本就OK啦

在project中的build.gradle中

allprojects中放入

configurations.all {
resolutionStrategy {
    eachDependency { DependencyResolveDetails details ->
        if (details.requested.group == 'com.android.support') {
            details.useVersion "27.1.0"
        }
    }}}

然后cordova build android后发现


郁闷啊,怎么不支持armeabi-v7a了?后来推测肯定是Crosswalk通过productFlavors打成多个apk包方式了,也就是共享模式,这样可以缩小apk包的体积,缺点是要打出多个apk包,不同cpu架构的手机装最适合的apk包,但这样子很不方便,查下config.xml吧

咦?不对啊


crossalk设置的明明是embedded模式而不是共享模式啊,好吧最后查到app的module中的build.gradle里面

if (Boolean.valueOf(cdvBuildMultipleApks)) {
    flavorDimensions "default"

    productFlavors {
        armv7 {
            versionCode defaultConfig.versionCode*10 + 2
            ndk {
                abiFilters = ["armeabi-v7a"]
            }
        }
        arm64 {
            versionCode defaultConfig.versionCode*10 + 3
            ndk {
                abiFilters = ["arm64-v8a"]
            }
        }
        x86 {
            versionCode defaultConfig.versionCode*10 + 4
            ndk {
                abiFilters = ["x86"]
            }
        }
        x86_64 {
            versionCode defaultConfig.versionCode*10 + 5
            ndk {
                abiFilters = ["x86_64"]
            }
        }
    }
}

这段代码,说明cdvBuildMultipleApks肯定为true了,然后执行了上面这段代码,好吧那这样就去plugin里面改了:

创建一个.gradle文件,里面添加:ext.cdvBuildMultipleApks=false,保存,然后将该文件放至在platforms/android/cordova-plugin-crosswalk-webview里,我的目录里本来存在cordova-xwalk.gradle这个文件就直接把ext.cdvBuildMultipleApks=false添加在文件里面顶部就好了

最后cordova clean,然后重新编译下就好了



                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值