欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android studio 版本升级 导致项目报错 终极解决方案

程序员文章站 2022-08-15 18:32:23
这个Android studio调了一天,终于不报错了…不管你是升级,还是别的项目拷贝,首先检查Gradle,而且跟Android studio的版本有关。1. 版本,classpath改成新的安装好后,一个SDK目录,一个软件安卓目录2. 下载Gradle,配置自定义Gradle先随便新建一个安卓项目,重要的是:要看新建项目后他默认使用的Gradle版本是多少这里默认的是 6.1.1.all,下载版本高了也不行!然后去官网https://services.gradle.org/distr...
这个Android studio调了一天,终于不报错了…

不管你是升级,还是别的项目拷贝,首先检查Gradle,而且跟Android studio的版本有关。

1. 版本,classpath改成新的

Android studio 版本升级 导致项目报错 终极解决方案
Android studio 版本升级 导致项目报错 终极解决方案

studio安装好后,一个SDK目录,一个软件安卓目录
Android studio 版本升级 导致项目报错 终极解决方案

2. 下载Gradle,配置自定义Gradle

https://services.gradle.org/distributions/ 下载最高版本6.6.all.zip,建议用FDM下载较快
下载后,在Android studio安装目录下新建文件夹gradle,打开设置,如下设置刚才的gradle目录,点ok
Android studio 版本升级 导致项目报错 终极解决方案
然后把下载的6.6.all.zip包丢到那个gradle目录,设置改成这样
distributionUrl=file:///D:/Android_Studio/gradle/gradle-6.6-all.zip

Android studio 版本升级 导致项目报错 终极解决方案
然后sync now,他会在这个目录自动下载这四个文件夹,
它里面自动解压到 wrapper/dists 里面
Android studio 版本升级 导致项目报错 终极解决方案
gradle就配置好了!现在可以把C盘的C:\Users\xxx 下面的.gradle删掉了
我这下了三个sdk
Android studio 版本升级 导致项目报错 终极解决方案

3. build.gradle(module:app) 配置

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'
}

3. build.gradle(Project: xxx) 配置

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
把这些配置都调对,项目基本不会报错了。其他的错误就是依赖问题!

本文地址:https://blog.csdn.net/qq_36153149/article/details/107948429