【Android 筆記】 Gradle 版本更新問題
2020/01/07 Android

最近修改 Android Sensor Driver 碰到了 Gradle 相關問題,錯誤訊息如下

Gradle DSL method not found: 'google()'

解決方法

將 gradle 版本由 3.3 更新為 4.6,如下圖,到 Gradle Script 下的 gradle-wrapper.properties 將舊版本的 distributionUrl 替換為新版本連結,如下

distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

改完如下圖

gradle-wrapper.properties

接著到** build.gradle(Project android_sensors_driver)** 文件修改 gradleVersion 版本為 4.6 ,如下圖

build.gradle

接著按下 Sync Now

build.gradle

同步完成後又碰到錯誤如下

Configuration 'compile' is obsolete and has been replaced with 'implementation' and 'api'.

Sync Now

查詢一下,發現 官方說明文件,有提到將 build.gradle 相關文件中的 compile 修改為 implementation 的需求,文件中我們要注意的內容如下方截圖

compile instead of api

大致上的意思就是說 compileimplementation 或是 api 所替代 至於 implementationapi 差異,我的理解如下

  • api 指令

完全等同於 compile 指令,沒區別,你將所有的 compile 改成 api,完全沒有錯。

  • implement

這個指令的特點就是,對於使用了該命令編譯的依賴,對該項目有依賴的項目將無法訪問到使用該命令編譯的依賴中的任何程序,也就是將該依賴隱藏在內部,而不對外部公開。

所以我們到所有 build.gradle 相關文件,將 compile 替換成 implementation ,如下圖

compile

改為

implementation

再次 RUN,解決問題了!