• Android Studio Giraffe安装与gradle配置


      本机环境:win10专业版,64位,16G内存。

      原先用的AS2.2,是很早之前在看《第一行代码Android(第2版)》的时候,按书里的链接下载安装的,也不用怎么配置。(PS:第一行代码这本书对新手确实很适合,第1版是eclise,第2版是Android studio)

      最近想给AS升级一下,果不其然碰到很多问题。

      最开始肯定是去下载Android Studio,参考下方给出的链接。

      Android开发自然是要Java环境,这个没啥难度,直接下载安装就好,如果在官网上下,就需要注册一下oracle账号。我之前已经安装过jdk1.8,所以略过了,没想到后面也是个坑。

      当前的AS最新版是Android Studio Hedgehog,我一开始下载的也是这个,但一直没配置好,就换成了Android Studio Giraffe这个版本,其实应该跟AS的版本没啥关系,后面再试试换成最新版的。

      安装这个没啥好说的,参考下面的安装教程就行。因为搞Hedgehog版本的时候死活不行,一度怀疑是否是之前AS2.2版本的残余影响了,所以我是把C盘里面涉及到的文件夹都先删了个干干净净,当然,这一步估计也不是关键。文件夹最好不要选在系统盘,自己在其他盘新建一个来放就好了,名字不要带中文,SDK的文件夹不要带空格。出现弹窗"Unable to access Android SDK add-on list",先点击cancel跳过就好。一路点下去,然后就是等待下载完成。

      安装完成后,新建个项目试试水,点击new project,随便选个带窗体的模板就行。设置项目名称,包名,路径,不要带中文,语言选java,选择最低支持的Android 版本。点击finish后,又开始了下载。这里就是下载gradle以及Android项目需要引用的包。

      尝试编译,果然开始报错了,我们的目标就是让编译那个绿色三角形亮起来。

      这时候,微信另一端的老铁给我发来了私藏多年的链接,就是下面那篇《Andriod Studio配置问题:run是灰色的,编译报错 Could not resolve com.android.tools.build:gradle:3.5.2.》,确实是最接近正确答案的一篇了。

      先尝试一下点击 File -> sync ProJect with Gradel File,确实编译出错。

      先把proxy关了,点击File-Settings-System Settings-HTTP Proxy,默认应该是关的(选No proxy),确认一下就好,如图:

      找到Project的build.gradel,这里要注意,有两个build.gradel,你可以把左上角切换成Android,然后在Gradle Scripts里面,找到那个后面括号带项目名的文件,如图:

       然后修改里面的内容,参考资料里面给出的文件内容有那么一点小问题,比如少了最后一个花括号},比如有些链接没有改成https,问题不大,改一下就好(最终内容见文末,这一步我是直接用的参考资料的内容)。

      如果链接没有改成https,就会报错Could not GET 'XXX'. Received status code 403 from server: Forbidden,应该是安全机制问题。

      一开始AS里面默认用的是8.0版本的gradle,怎么编译都不行,想了想,会不会是插件版本跟gradle版本对不上,于是默默的查了下《Gradle版本、Gradle插件版本和AndroidStudio版本之间的对应关系》,随便找了一对看起来可以用的版本。

      这次又换了个报错,再查了下《Android Studio 失败:构建失败并出现异常。允许的子类需要 ASM9》,把插件版本换成7.3.0,gradle版本换成7.4,再次编译。

      这里说的插件版本跟gradle版本,一个是对应build.gradel文件里面那一行classpath "com.android.tools.build:gradle:'7.3.0',一个是对应gradle-wrapper.properties文件里面distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip,也可以在左上角File-Project Structure里面看到,我这里试着在Project Structure改了下配置,然后它给我自动把插件版本放到了参数里面去了:

     

      报错“Build was configured to prefer settings repositories over project repositories but repository...”,继续找资料,在Gradle Scripts里面找到settings.gradle,注释掉dependencyResolutionManagement的内容,再次编译。

      这时候看起来就很像是要成功的样子了,虽然还是报错“Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8”,这里一看就知道是java版本不对,插件要java11,那就下载一个,然后配置好环境变量,再次编译。

      这里仅仅更新外部的java环境是不够的,还要再修改一下AS的配置,点击File-Settings(这里如果选择的是JAVA_HOME要重启下AS才会更新成最新的):

      修改一下另一个build.gradle的java版本:

       到这里其实已经可以编译通过了,三角形已经亮起了健康的绿色,我也没试虚拟机,直接找了个实体机试了下,成功运行,完结撒花。

    文末附上各文件完整内容:

    //------------------------------------------------------------------------------------------

    • 第一个build.gradle文件:

    // Top-level build file where you can add configuration options common to all sub-projects/modules.

    buildscript {
        ext {
            agp_version = '7.3.0'
        }
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            mavenLocal()
            mavenCentral()
            google()
            // jcenter()
            maven { url "https://jitpack.io" }
            jcenter(){url "https://jcenter.bintray.com/"}
        }
        dependencies {
            classpath "com.android.tools.build:gradle:$agp_version"

            // NOTE: Do not place your application dependencies here; they belong
            // in the individual module build.gradle files
        }
    }

    allprojects {
        repositories {
            maven { url 'https://maven.aliyun.com/repository/public' }
            maven { url 'https://maven.aliyun.com/repository/google' }
            maven { url 'https://maven.aliyun.com/repository/gradle-plugin' }
            mavenLocal()
            mavenCentral()
            google()
            //jcenter()
            maven { url "https://jitpack.io" }
            jcenter(){url "https://jcenter.bintray.com/"}

        }
    }

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

     

    //------------------------------------------------------------------------------------------

    •  第2个build.gradle文件:

    plugins {
        id 'com.android.application'
    }

    android {
        namespace 'com.example.myapplication'
        compileSdk 33

        defaultConfig {
            applicationId "com.example.myapplication"
            minSdk 24
            targetSdk 33
            versionCode 1
            versionName "1.0"

            testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
        compileOptions {
            sourceCompatibility JavaVersion.VERSION_11
            targetCompatibility JavaVersion.VERSION_11
        }
    }

    dependencies {

        implementation 'androidx.appcompat:appcompat:1.4.1'
        implementation 'com.google.android.material:material:1.5.0'
        testImplementation 'junit:junit:4.13.2'
        androidTestImplementation 'androidx.test.ext:junit:1.1.3'
        androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
    }

     

    //------------------------------------------------------------------------------------------

    • gradle-wrapper.properties文件:

    #Sat Aug 12 10:47:10 CST 2023
    distributionBase=GRADLE_USER_HOME
    distributionPath=wrapper/dists
    distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
    zipStoreBase=GRADLE_USER_HOME
    zipStorePath=wrapper/dists

    //------------------------------------------------------------------------------------------

    • settings.gradle文件:

    pluginManagement {
        repositories {
            google()
            mavenCentral()
            gradlePluginPortal()
        }
    }
    //dependencyResolutionManagement {
    //    repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    //    repositories {
    //        google()
    //        mavenCentral()
    //    }
    //}
    rootProject.name = "My Application"
    include ':app'

     

     //------------------------------------------------------------------------------------------

      网上也有其他的方法,但实操过后感觉作用不大,应该是药不对症,也一并放在下方了,归类在其他项。

    • 下载链接:

    Android Studio :

      1、 https://developer.android.com/studio (官网)

      2、 https://www.androiddevtools.cn/# (这里面包括很多Android的资料)

    Java11:https://www.oracle.com/java/technologies/downloads/#java11-windows

    •  主要参考资料:

    《安卓开发 Android Studio安装教程》 https://blog.csdn.net/m0_65489276/article/details/126830701

    《Android studio安装教程》 https://blog.csdn.net/tao_789456/article/details/118093106

    《Andriod Studio配置问题:run是灰色的,编译报错 Could not resolve com.android.tools.build:gradle:3.5.2.》 https://blog.csdn.net/m0_37922496/article/details/113531074

    《Android Studio 编译报错:Could not GET 'XXX'. Received status code 403 from server: Forbidden》 https://blog.csdn.net/summer_ck/article/details/105264997

    《Gradle版本、Gradle插件版本和AndroidStudio版本之间的对应关系》 https://blog.csdn.net/Jackson_Wen/article/details/130671443

    《Android Studio 失败:构建失败并出现异常。允许的子类需要 ASM9》 https://www.soinside.com/question/GSDJQXBMciNv3oMRmTsBbE

    《Build was configured to prefer settings repositories over project repositories but repository ....问题》 https://blog.csdn.net/badme/article/details/121946258

    《如何实现Android Gradle plugin requires Java 11 to run. You are currently using Java的具体操作步骤》 https://blog.51cto.com/u_16175443/6628800

    《jdk11下载、安装及环境配置详解(win10环境)》 https://blog.csdn.net/li1325169021/article/details/128667969

    • 其他:

    《解决 android studio 出现:"AndroidStudio:Could not GET 'https://dl.google.com Received status code 400 from server: Bad Request"问题》 https://www.cnblogs.com/sky-cheng/p/11832959.html

    《Android studio出现Error:Unable to tunnel through proxy. Proxy returns "HTTP/1.1 400 Bad Request"的解决办法》 https://blog.csdn.net/e_one/article/details/51046313

    《Could not resolve all dependencies for configuration ‘:classpath‘.》 https://blog.csdn.net/BugNest/article/details/123057250

    《Android 应用(9)——Gradle和Gradle插件》 https://blog.csdn.net/scottmvp/article/details/120920928

    《Android Studio Gradle两种更新方式》 http://www.taodudu.cc/news/show-1041443.html?action=onClick

    《Using insecure protocols with repositories, without explicit opt-in, is unsupported.解决方案》 https://blog.csdn.net/qq_36532805/article/details/125118215

    《Android stdio build.gradle buildscript 里面的repositories 和allprojects里面 repositories 的区别》 https://blog.csdn.net/u013270444/article/details/88252234

    《AS 把鼠标放在targetSdkVersion xx下边红波浪线提示:Google Play requires that apps target API level 31 or higher.》https://blog.csdn.net/qq_35091074/article/details/126229384

    《Android studio版本对用的gradle版本和插件版本(注意事项)》https://betheme.net/qianduan/68269.html?action=onClick

    gradle下载地址:https://services.gradle.org/distributions/

     

  • 相关阅读:
    为什么大部分人做网赚是赚不到钱的,这才是真正的原因!
    怎样编写裸片启动程序-ARMv8的Boot Code和ROM程序
    Linux系统学习 shell script
    奔腾电力面试题
    纯css爱心代码-最近超级火的打火机与公主裙中的爱心代码(简易版)
    【目标检测算法】YOLO-V5实战检测VOC2007数据集
    状态定义与深度优先搜索、广度优先搜索
    <Linux进程控制>——《Linux》
    关系型数据库设计理论及部署实现
    随笔-只是普通人
  • 原文地址:https://www.cnblogs.com/magicMaQaQ/p/17624726.html