不管你是升級,還是別的專案拷貝,首先檢查Gradle,而且跟Android studio的版本有關。
studio安裝好後,一個SDK目錄,一個軟體安卓目錄
先隨便新建一個安卓專案,重要的是:要看新建專案後他預設使用的Gradle版本是多少
這裏預設的是 6.1.1.all,下載版本高了也不行!然後去官網https://services.gradle.org/distributions/
下載6.1.1.all.zip,建議用FDM下載比較快
下載後,在Android studio安裝目錄下新建資料夾gradle,開啓設定,如下設定剛纔的gradle目錄,點ok
然後把下載的6.1.1zip包丟到那個gradle目錄,設定改成這樣
distributionUrl=file:///D:/Android_Studio/gradle/gradle-6.1.1-all.zip
然後sync now,他會在這個目錄自動下載這四個資料夾,然後把6.1.1zip包再丟到wrapper/dists裏面,他會自動解壓
gradle就設定好了!現在可以把C槽的C:\Users\xxx 下面 下麪的.gradle刪掉了、
檢視sdk下載好了沒,我這下了三個sdk
apply plugin: 'com.android.application' //宣告是安卓程式
apply plugin: 'org.greenrobot.greendao'
android {
//lint檢查
lintOptions {
checkReleaseBuilds false //true--所有正式版構建執行規則生成崩潰的lint檢查,如果有崩潰問題將停止構建
abortOnError false //true--錯誤發生後停止gradle構建
}
//aapt編譯資原始檔設定
aaptOptions.cruncherEnabled = false //關閉Android Studio的對PNG .9圖合法性檢查
compileSdkVersion 29 //編譯sdk的版本 === 對應sdk目錄下 D:\Android_SDK\platforms裏面的版本
buildToolsVersion = '30.0.1' //構建工作的版本 === 對應sdk目錄下 D:\Android_SDK\build-tools裏面的版本
defaultConfig {
applicationId "com.xxxxxxx.xxx" //專案包名
minSdkVersion 25 //專案最低相容版本
targetSdkVersion 29 //專案的目標版本 一般跟compileSdkVersion一樣
versionCode 1 //版本號
versionName "1.0" //版本名
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" //測試用
}
buildTypes {
release {
//是否對專案程式碼進行混餚
minifyEnabled false
//指定混餚使用的規則檔案:proguard-android.txt是通用規則,proguard-rules.pro 編寫專案特有的規則
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
//指定jdk版本
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
}
//greenDao設定
greendao {
schemaVersion 1 //數據庫版本
daoPackage 'com.xxxxxxx.xxx.greenDao' //生成的位置
generateTests false //設定爲true以自動生成單元測試。
targetGenDirTests 'src.main.java' //應儲存生成的單元測試的基本目錄
}
//已經用上androidx了
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs') //宣告本地依賴,將libs下所有jar包添到專案中
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.android.material:material:1.2.0'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
//數據庫依賴
implementation 'org.greenrobot:greendao:3.3.0'
//註解控制元件butterknife
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
//lombok,Androidstudio要下載外掛
implementation 'org.projectlombok:lombok:1.18.12'
annotationProcessor 'org.projectlombok:lombok:1.18.12'
}
buildscript {
repositories {
google()
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.0.1'
//數據庫GreenDao依賴,這個好像版本也要跟gradle版本相容,不然報錯
classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0'
//控制元件註解,這個好像版本也要跟gradle版本相容,不然報錯
classpath 'com.jakewharton:butterknife-gradle-plugin:10.2.1'
}
}
//全域性的設定,專案本身需要的依賴庫
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' } //設定私有maven庫
}
}
// 執行gradle clean時,執行此處定義的task。
// 該任務繼承自Delete,刪除根目錄中的build目錄。
// 相當於執行Delete.delete(rootProject.buildDir)。
// gradle使用groovy語言,呼叫method時可以不用加()。
task clean(type: Delete) {
delete rootProject.buildDir
}
AndroidManifest.xml 看看裏面的包名等等
settings.gradle 看看裏面 include ‘:app’
local.properties 裏面設定sdk的目錄 sdk.dir=D\:\\Android_SDK
把這些設定都調對,專案基本不會報錯了。其他的錯誤就是依賴問題!