1. 程式人生 > >Error:Gradle: failed to create directory

Error:Gradle: failed to create directory

今天在看Kotlin-Docs,於是隨手建了一個HelloKotlin的專案準備練練手,於是引發了一連串的問題。在此記錄過程。

環境

  • Windows 7 64bit
  • AndroidStudio 3.0.1

一般的,像下面這樣,直接寫一個程式入口main函式,跑一些簡單程式碼時不用構建apk省時省力:
這裡寫圖片描述

同樣的,我想建立一個Kotlin的程式入口。
建立專案時勾選上Kotlin,AndroidStudio便自動匯入Kotlin環境,然後直接新建了一個Hello.kt的檔案,裡面程式碼很簡單,只有三行,如下:

fun main(args: Array<String>) {
    System.out.print("Hello Kotlin"
) }

fun單詞前有個彩色的Kotlin Logo,直接點選就可以執行HelloKotlin(按道理這樣就可以正常跑起來了,我是這麼以為的),但是,報了下面這個錯誤
這裡寫圖片描述

在網上搜索Error:Gradle:failed to create directory一番後,找到了解決辦法,原來是新版AndroidStudio自帶的Aapt2引起的,直接禁用就好:在gradle.properties新增如下配置即可:

android.enableAapt2=false

再次點選fun前面的彩色Kotlin Logo,我以為可以運行了,但是,又報了下面這個錯誤
這裡寫圖片描述

IDE說找不到HelloKt.class,然而勤勞的我卻憑藉雙手找到了,措不及防


這裡寫圖片描述

這下我就有點不知所措了。。。
網上也沒查出什麼相關參考,又試了幾種不同的寫法,依然不行,最後不知怎麼突然想到修改Gradle版本試試看,事實證明此路可行!
AndroidStudio 3.0.1建立新專案預設的Gradle版本時4.1,Android Plugin Version是3.0.1。我把HelloKotlin專案向下降了一個版本,即Gradle-3.4,Android Plugin - 2.3.3,去掉DSL method google()
這裡寫圖片描述

相應的,Module的build.gradle裡一些版本都要下調。

// 部分內容
android {
    compileSdkVersion 25
buildToolsVersion '25.0.3' defaultConfig { applicationId "com.oy.hellokot" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } ... } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) compile"org.jetbrains.kotlin:kotlin-stdlib-jre7:$kotlin_version" compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2' }

如上配置以後,再次點選fun之前的彩色Kotlin Logo,程式便可以跑起來了。