AndroidStudio3.1.2使用ButterKnife问题归纳

AndroidStudio版本升级对依赖的兼容性一直都被android开发人员诟病,最近换了Mac开发,AS升级到3.1.2版本,在github搜的JakeWharton的ButterKnife已经更新到8.8.1啦,二话不说就按照文档步骤开始在项目中使用,NND万万没想到构建项目竟然接二连三的爆了一堆错误,无力吐槽,步入正题。

  1. 首先按照github地址的使用说明添加相应的依赖https://github.com/JakeWharton/butterknife,一上来就开始报:gradle:connect time out  然后各种寻找解决办法,有人说是gradle版本的问题,我在根项目的gradle warper里用的是gradle-4.4-all.zip,所以就自己下了gradle-4.4.all.zip下载了放在as gradle设置user default gradle的路径下的gradle-4.4-all文件夹下的一串特殊字符的文件夹下,然后Sync Project with gradle file ,但是依然报错:gradle:connect time out,这个时候突然发现左下角进度条显示的是:Gradle:download ******ButterKnife-plugin-8.8.1,然后没过多久就提示:gradle:connect time out.这下才反应过来,原来是因为下载ButterKnife依赖失败了,原来gradle会先从本地库去加载依赖,如果本地库没有,就从远程库下载,但是远程库下载非常慢经常超时失败,所以一般用阿里的远程仓库下载,速度杠杠滴,具体就是在根项目的gradle里添加这行代码

    allprojects {
        repositories {
            maven{ url 'http://maven.aliyun.com/nexus/content/groups/public/'}
            maven {
                // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
                url "$rootDir/../node_modules/react-native/android"
            }
    
        }
    }
  2. 加了这行代码之后果然再也不报这种异常啦!说实话真是被AS搞得很无奈,这时候又爆了cant resolve butterknife,所以索性就删了build.gradle顶部的

    apply plugin: 'com.jakewharton.butterknife'

     3.上一步操作成功之后,NND又报错了,大体的意思就是我引用的react-native下的support-v7和我根项目的v7版本不一致。这TM一顿好找啊,发现两种解决方案:1⃣️用3x之后的AS api添加依赖方法:api(){ }括号内是添加的依赖,大括号内是该依赖的名字,具体可以查阅api()的相关语法,我用的第二解决办法:就是在gradle添加强制依赖的版本

/*
*  解决引用项目使用的依赖版本与跟项目版本不一致问题
 */
configurations.all {
    resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion rootProject.ext.supportLibVersion
            }
        }
    }
}

经过半天的折腾终于把ButterKnife添加到项目里啦!!!!!!哦对了,使用快捷键激活generator的时候也找了半天,因为windos使用alt+insert,但是Mac没有insert这个键,只能选中布局,然后右键就出来了,还有一点需要注意:如果你的gradle-plugin,也就是在根项目gradle非app下面的gradle 里

dependencies {
    classpath 'com.android.tools.build:gradle:3.1.0'
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.5.1'
    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
}

如果你用的classpath 'com.android.tools.build:gradle:2.XX,而且仍然一直报莫名其妙的错,不妨改成3.1.0版本的试试,哦,如果你改成3.1.0的请不要忘记在gradle/wrapper/gradle-wrapper.properties里修改成

distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip 或者其他相匹配的gradle版本。

如果有这方面的问题可以给我留言哦,如果知道一定回答。

                                                                                                            --本该怒放的年纪,请多一些折腾,和些许肆无忌惮。

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值