最近幾天把android studio的版本升級到2.3的版本後,發現新建的項目編譯不通過。提示什麼錯呢?如下圖所示
插件版本2.3.0- alpha2太老了??但是2.3版本也不老啊,因爲IDE的版本也才2.3.那這個問題到底是什麼引起的呢?
我們先明白插件版本指的是什麼。
在android studio中,控制編譯時採用gradle哪個版本的文件叫gradle-wrapper.properties,裏面比如說定義了
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
那麼這時候就用2.14版本的gradle去構建項目。
distributionUrl告訴我們下載使用的是哪個版本的gradle
而plugin version是指gradle插件的版本號,具體在build.gradle當中定義,如下圖所示:
這個問題是由於系統找不到2.3.0 - alpha2 這個插件版本號造成的,於是我們把這個2.3.0-alpha2 改成 2.3.0就行了。
修改方法:File—>Project Struct->Project 把 Gradle Plugin Version 改成2.3.0
這時候再重新跑一下,發現又直接報錯了
原來google 這個gradle plugin version 和 gadle version 之間有對應關係,就是要求如果我用2.3的plugin version,那麼這個gradle version就必須在3.3以上。
問題原因很明顯,那解決辦法有兩個,一個是用3.3的gradle version,另外一個就是講plugin version降低到2.2 。
對應關係可以參考一下這篇文章http://blog.csdn.net/zouchengxufei/article/details/60983106
好的,我這裏選擇把gradle plugin version降低爲2.2 以後 ,發現編譯終於可以通過了。
但是在運行的時候報錯:“ This version of Android Studio is incompatible with the Gradle Plugin used. Try disabling Instant Run (or updating either the IDE or the Gradle plugin to the latest version) ”
這個到網上查了一下,是由於android studio2.0 以後有一種instant run的機制,簡單理解就是如果你修改的地方是一個資源文件或者一段方法代碼,as就可以不用重新安裝apk而快速把你的app跑起來。
這裏爲了先運行程序,於是準備先把這個機制給取消掉。
點擊File-》Setting—》Build,Exception,Deployment裏面把Instant Run的選項取消掉
呼呼,折騰死,然後再重新跑一下,終於可以在真機上運行起來了, 在這個過程中我覺得自己肯定還有一些不明白的地方,現在把這個問題記錄下來,以後可以回過頭來總結一下。要學的東西還有很多,加油!