天天看點

Android Studio3.0使用Gradle可能遇見的問題

Android Studio3.0,在Google I/O 2017上釋出,與2017/10/25正式釋出release版,現在就可以下載下傳啦,文章最後我會附上連結位址。
Android Studio3.0包含了許多的新功能。包括:一套新的APP分析工具,用于快速診斷性能問題。支援kotlin語言,以及新的工具,幫助開發者們在最新的Oreo API上的開發。
當然在這裡我們都不介紹這些。。- -#,不過我會分享點其他的。在android studio 3.0 用的是android gradle Plugin 3.0 使用的是Gradle 4.0。
           

1.更新配置

首先更新我們項目的Gradle 版本,一般android studio 更新到3.0後 會提示你是否更新gradle.這裡我用的是手動修改的方式:
在gradle/wrapper/gradle-wrapper.propertis中修改:
           
distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
然後還需要修改Android Plugin版本。在項目的根目錄:build.gradle:
![根目錄build.gradle](https://img-blog.csdn.net/20171028114147221?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaWVoc2h4/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
注意下 要添加 
           

maven {

url ‘https://maven.google.com’

}

因為google釋出了自己的maven庫。

2.新的依賴配置

在gradle的新版本推出了新的配置:可以控制釋出、編譯、運作試類的路徑。通俗的說就是module在編譯時可用還是運作時可用。

1.implementation 對應的是之前的compile 配置,他在module編譯時可用,module的使用者在運作時可用。對于大量使用library的項目,提升的效率還是蠻高的,因為它可以減少建構系統重新編譯一些module。

2.api 對應的是之前的compile配置,他在module編譯時可用,module 使用者編譯和運作時可用。和之前的compile完全一樣。常用于library。 那麼他和implementation有什麼差別呢?比如說在library中引用了appcompat-v7,如果是api 在module中也是可以正常使用該包中的類的。如果是implementation中編譯就會報錯。

3.compileOnly 對應之前的provided,在module編譯時可用,隻能該module自己用,module的使用者,在編譯和運作時 都不可以用。

4.runtimeOnly 對應apk, module和它的使用者,運作時可用.它跟過時的apk是一樣。

注意:complie,provided,apk 這些過時的依賴目前還是可以用的,但是下個版本就會被移除掉了,是以大家還是用新的吧。

3.禁用錯誤檢查

如果包含了不需要的annotationProcessor編譯路徑,可以使用配置禁用錯誤檢查的提示

android {
    ...
    defaultConfig {
        ...
        javaCompileOptions {
            annotationProcessorOptions {
                includeCompileClasspath false
            }
        }
    }
}
           

android studio 3.0的位址:

下載下傳位址

下載下傳位址

下載下傳位址

重要的事說三遍。