從字面就能看出來,出現這個問題的緣由是找不到runProguard()這個方法了(調用這個方法的地方在每一個Module對應的build.gradle文件中)。
這是由於,當Android Studio升級時,也自動的將項目下的build.gradle文件(不是Module對應的build.gradle!)下的內容修改爲了:android
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0-rc4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
而升級以前是這樣的(以個人電腦爲例,應該是相似的):android-studio
dependencies {
classpath 'com.android.tools.build:gradle:0.12.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
顯然,最簡單的解決方法是將gradle的版本改回去,此方法可能的確有效。
可是,這種作法顯然不是最好的方法。查閱官方文檔以後(http://tools.android.com/tech-docs/new-build-system)以後發現,在新版本的gradle中,runProguard這個方法已經廢棄了,而且改成新的方法了:minifyEnabled. 所以,正確的解決方法不是修改gradle的版本號,而是將項目中每一個Module對應的build.gradle文件中的runProguard方法名改成minifyEnabled,即:bash
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
問題完美解決。markdown
刪除 Plugin with id ‘android-apt’ not foundapp
Android studio從1.0 RC 4升級到1.0(其實就是打了一個8M的patch)後,這個時候相應的gradle的版本也會直接使用「com.android.tools.build:gradle:1.0.0」,若是這時你在gradle文件中又用到outputFile就會出現上述的問題。好吧,其實這也是gradle團隊搞的問題,有時候咱們多但願gradle能像android同樣,對舊版本有一個很是好的兼容性。
廢話很少說,直接說怎麼解決這個問題吧,這個問題的緣由是outputFile這個函數被換地方了。
old:函數
applicationVariants.all { variant -> ......
variant.outputFile = new File(variant.outputFile.parent, name);
......
}
}
new: gradle
applicationVariants.all { variant -> ......
variant.outputs.each { output -> output.outputFile = new File(output.outputFile.parent, name);
......
}
}
按上述方式改就ok了。ui
解決方法:
刪掉最外層的build.gradle中的google
android {
compileSdkVersion 19
buildToolsVersion '21.1.1'
}
版權聲明:本文爲博主原創文章,未經博主容許不得轉載。(轉載請註明出自 AllenCoder)lua