1. 程式人生 > >< Kotlin > Android Studio3.0 Kotlin工程問題集

< Kotlin > Android Studio3.0 Kotlin工程問題集

問題1: 新建支援Kotlin的Android專案,卡在“Resolve dependency :classpath”

解決分析:
一般碰到“Resolve dependency :classpath”卡著一動不動的,等一會如果還是沒反應,應該就是永遠沒反應。先重啟下Android Studio或者重新gradle sync一下,如果還是不行,看下工程中“gradle-wrapper.properties”中的gradle版本,然後去系統.gradle 目錄下看下對應的gradle 是否已經下載OK

這裡寫圖片描述

我這裡是在家目錄下的.gradle/wrapper/dists下,可以看到一些Gradle版本,找到你正在使用的版本。進入後可以看到一串很長的檔名,繼續進入

這裡寫圖片描述

如上可以看到一些檔案,如果有完整的.zip包和.ok檔案就說明對應的gradle版本是下載OK的;如果沒有下載完,AS中進行構建的時候,你可以明顯的看到目錄下有個檔案的大小在逐漸增加,這就說明正在執行gradle 版本的下載任務,可以耐心等待下,如果是下載OK的情況下,還是一直卡在“Resolve dependency :classpath”,就是我今天用AS3.0 構建Kotlin專案的時候遇到的問題,你就可以看看你的build.gradle檔案中,是否又不常見的dependency。就如Kotlin工程中
就是使用到

repositories {
  maven {
    url "https://maven.google.com"
} }

這個在牆內是無法訪問的。我猜想就是這個導致的,換成aliyun maven或者其他國內可訪問的maven後,不會卡住了,關於Android Studio中配置aliyun Maven ,請參考我的另一篇博文

問題2:“Unable to find method ‘com.android.build.gradle.internal.variant.BaseVariantData.getOutput()Ljava/util/List’”

這裡寫圖片描述
解決辦法:
kotlin版本調整,之前是1.1.2-3,換成1.1.2-4

ext.kotlin_version = '1.1.2-4'

問題3:“Declaring custom ‘clean’ task when using the standard Gralde lifecycle plugins is not allowed”

這裡寫圖片描述
解決方法:

把build.gradle中的clean task 無情地註釋掉。

//task clean(type: Delete) {
//   delete rootProject.buildDir
//}

問題4: build.gradle檔案中”def outputFile = output.outputFile”報錯”Not valid”,如圖

這裡寫圖片描述

出錯程式碼,如下第39行

這裡寫圖片描述

修改成如下內容

// If you use each() to iterate through the variant objects,
// you need to start using all(). That's because each() iterates
// through only the objects that already exist during configuration time—
// but those object don't exist at configuration time with the new model.
// However, all() adapts to the new model by picking up object as they are
// added during execution.
android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}.apk"
    }
}

最後

關注「碼道長」,瞭解最前沿的技術知識,擡高自己的天花板。
這裡寫圖片描述