Android Studio 1.5 坑

       Android studio 作为Android开发环境越来越流行,尤其是谷歌之后将不再支持eclipse进行开发,近一年多来Android studio也发布了多个版本,从0.1到现在的1.5。2.0preview版本,每一个版本都有众多的惊喜带来。不过伴随着惊喜的是,版本与版本之间的差距很大,每一次升级都带来各种各样的修改调整,并且版本之间也不是完全兼容的。

        Andorid Studio 1.5也出来有一段时间了。之前项目中一直使用Andorid Studio 1.4,昨天为了尝试新的版本,就手欠的升级了一把,升级完成后开始编译,哇咔咔,完全编译不过去了。恰好产品要支持Andorid M,第一个想法就认为是M包没有下载完全或者是support包依赖不正确,因此重新下载了M包并且升级了support包,由于项目中使用Maps包,同时也下载了Maps包,依旧编译不过。当即查看了/Applications/Android Studio.app/Contents/gradle 的gradle 版本与m2repository仓库下的gradle对应的build版本,调整之后错误依旧, 不过错误提示已经改变,当即排除了是M包与support包的问题。

解决方案

       这样看来那就只能是gradle版本的问题,每一次升级gradle版本的变动也很大。初步认为是gradle版本之间兼容的关系,之前项目使用的gradle
2.4,build版本是1.2.3,替换后发现不能编译,由于还要继续使用之前的脚本,新的写法也未做研究,那就改回之前的版本,初步解决就是讲Android Studio 1.4对应的2.4与build 1.2.3拷贝到1.5中来,我本地是有保存之前的文件的,如果没有可以在网上下载Andorid studio 1.4 将对应的文件拷贝出来。

       Android studio 每次升级都会将/Applications/Android Studio.app/Contents/gradle 目录下整个替换掉,我本地升级后只有gradle 2.8, m2repository下也只有1.3.0 与 1.5.0,因此就将之前1.4下的 gradle 2.4 拷贝到/Applications/Android Studio.app/Contents/gradle下, 并且将m2repository 合并到/Applications/Android Studio.app/Contents/gradle/m2repository中(注意是合并,因为版本与版本之间可能有不同的依赖不能直接替换,这样下一次升级到2.8,就不需要再次进行下载了)。之后再编译。运行ok。

       每次升级都是一个坑啊!目前是为了兼容老版本才进行了拷贝的解决方案,最终的解决方案还是应该对应升级build.gradle脚本。不过目前未做研究。

附录

       很多人疑惑build.gradle中的gradle版本号与wrapper中的版本号到底是什么关系?

classpath ‘com.android.tools.build:gradle:2.1.0’ 这里的2.1.0表示的Android的gradle插件版本,而wrapper中distributionUrl=https://services.gradle.org/distributions/gradle-2.10-all.zip,2.10表示的gradle这门脚本语言本身的版本,这两个不是对应关系,gradle插件版本现在发展很快,经常会更新。而语言本身的版本速度就要慢很多.

       其次一次gradle插件版本升级后,很多写法可能就已经变更了,因此如果有对应的写法,还需要更改对应的脚本。

ps

       现阶段版本已经升级到了2.1版本,在2.0后指出了install run,但是这个功能有的时候不好使,虽然已经更改了代码,但是运行后还是没有效果。因此你可能需要先卸载本地已经安装的应用程序,其次clean工程,重新编译运行,新的代码才会生效。

       最新的测试版已经到了2.2,该版本已经支持了可拖拽效果,跟ios编辑控件一致了,但是目前还没有realease版本,出来后可以大大加快书写布局的速度。

你可能感兴趣的:(gradle,android,gradle)