Android-Studio-Gradle 谁借莪1个温暖的怀抱¢ 2022-06-04 03:35 262阅读 0赞 ### 1.Gradle简介 ### > Gradle是一个构建工具,它是用来帮助我们构建app的,构建包括编译、打包等过程。我们可以为Gradle指定构建规则,然后它就会根据我们的“命令”自动为我们构建app。Android Studio中默认就使用Gradle来完成应用的构建。有些同学可能会有疑问:”我用AS不记得给Gradle指定过什么构建规则呀,最后不还是能搞出来个apk。“ 实际上,app的构建过程是大同小异的,有一些过程是”通用“的,也就是每个app的构建都要经历一些公共步骤。因此,在我们在创建工程时,Android Studio自动帮我们生成了一些通用构建规则,很多时候我们甚至完全不用修改这些规则就能完成我们app的构建。Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。 ### 2.Gradle下载 ### > 在线下载或者更新貌似这个过程不翻墙也是可以下载,但是访问特别慢,建议翻墙下载。 > 下载的Gradle默认存放地址: > Win平台会默认下载到 C:\\Documents and Settings<用户名>.gradle\\wrapper\\dists(C:\\Users\\Administrator.gradle\\wrapper\\dists) 目录 > Mac上会默认下载到 **/Users/<用户名>/.gradle/wrapper/dists** 目录 > 你会看到这个目录下有个 gradle-x.xx-all 的文件夹, 如果下载实在太慢,但是又不想翻墙的话,可以自己手动到[Gradle官网][Gradle]下载对应的版本,然后将下载的.zip文件(也可以解压)复制到上述的gradle-x.xx-all 文件夹下,不过还是建议让它直接下载的好。 ### 3.项目开发过程中遇到的有关Gradle的问题 ### #### Android Studio 自动升级 gradle 失败解决方案 #### > 1.Android Studio项目中会有一个文件:项目名称\\gradle\\wrapper\\gradle-wrapper.properties > ,里面的distribution链接中会带有版本,这个就是启动Android Studio之后会自动更新的版本,比如: > distributionUrl=[https://services.gradle.org/distributions/gradle-2.14.1-all.zip][https_services.gradle.org_distributions_gradle-2.14.1-all.zip] > 所以当遇到更新失败,大家就需要先在网上下载对应版本的gradle文件,以下就用gradle-2.14.1版本举例说明。 > 2.当Android Studio下载过gradle-2.14.1-all之后(不管成功失败),就会在C:/Users/用户名/.gradle/wrapper/dists中出现gradle-2.14.1-all文件夹,打开之后是一串以无规律字符命名的文件夹,我的是8bnwg5hd3w55iofp58khbp6yv,这个可能因人而异。打开之后就是真正的gradle文件。 > 3.当gradle-2.14.1-all下载失败后,8bnwg5hd3w55iofp58khbp6yv文件夹里的文件是两个,gradle-2.14.1-all.zip.lck和gradle-2.14.1-all.zip.part。 > 4.(关键步骤)将自己下载好的gradle-2.14.1-all.zip压缩包和解压后的gradle-2.14.1文件夹复制到gradle-2.14.1-all —>8bnwg5hd3w55iofp58khbp6yv文件夹下,将gradle-2.14.1-all.zip.part文件删除,复制一份gradle-2.14.1-all.zip.lck文件,重命名为gradle-2.14.1-all.zip.ok。 > 5.这个时候,当前文件夹里应该有四个文件gradle-2.14.1(文件夹)、gradle-2.14.1-all.zip(压缩包)、gradle-2.14.1-all.zip.lck(lck文件)、gradle-2.14.1-all.zip.ok(ok文件),好了,大功告成,重启你的Android Studio! #### Gradle版本对应关系 #### > Gradle分两个,一个是本地构建用的构建工具,另一个是Android Studio中的插件,用来调用本地的工具,这里说的是插件 > **project的build.gradle对应:**(读取的是studio本地的gradle) > F:\\Android-Studio\\Studio\\gradle\\m2repository\\com\\android\\tools\\build\\gradle > [下载地址][Link 1] > ![这里写图片描述][SouthEast] > **gradle默认路径对应:**(读取的是本地默认路径下缓存的gradle,我们可以先下载好在放到缓存里,这样就不用去翻墙更新了) > C:\\Users\\Administrator.gradle\\wrapper\\dists > [下载地址][Gradle] > ![这里写图片描述][SouthEast 1] #### Settings–>Gradle 中配置说明 #### ![这里写图片描述][SouthEast 2] > 当我们在setting下gradle下设置gradle选择“use defalut gradle wrapper(recommended)”时,as就会根据\{project.dir\}\\gradle\\wrapper\\gradle-wrapper.properties文件中的配置去gradle > 我们用as构建android项目时,配置gradle时我们必须在\{project.dir\}\\gradle\\wrapper\\gradle-wrapper.properties文件中配置gradle包, 配置的gradle必须在缓存目录( “用户主目录/.gradle/wrapper/dists/gradle-*.*.\*”)或者在as安装目录下的gradle目录下存在对应的版本。 > 例如我的电脑:C:\\Users\\dsfg.gradle\\wrapper\\dists\\gradle-2.4-all > distributionBase=GRADLE\_USER\_HOME > distributionPath=wrapper/dists > zipStoreBase=GRADLE\_USER\_HOME > zipStorePath=wrapper/dists > distributionUrl=[https://services.gradle.org/distributions/gradle-2.2.1-all.zip][https_services.gradle.org_distributions_gradle-2.2.1-all.zip] > 这个配置的gradle如果在目录“用户主目录/.gradle/wrapper/dists/..”存在的话,as就不会去[https://services.gradle.org/distributions/gradle-2.2.1-all.zip][https_services.gradle.org_distributions_gradle-2.2.1-all.zip]去下载了,as就会利用该目录下的缓存,如果该目录下不存在gradle的话as就会去站点根据gradle的版本去下载到“用户主目录/.gradle/wrapper/dists/gradle-2.2.1-all”目录下. ![这里写图片描述][SouthEast 3] > 如果选择的是“use local gradle distribution”的话表示用的是本地的gradle,本地的gradle是在as的主目录下的gradle目录下,比如我的电脑D:\\android开发环境\\android-studio-ide-143.2739321-windows\\android-studio\\gradle\\gradle-2.10,而不会去缓存目录 “用户主目录/.gradle/wrapper/dists/gradle-*.*.\*”中去找。 ![这里写图片描述][SouthEast 4] > 选择这个会让编译在一定程度上变快,但是就不能更新同步gradle了,如果想要更新同步gradle需要去掉这个选项,选择别的 #### 导入项目一直卡在Building gradle project info #### > AndroidStudio导入项目一直卡在Building gradle project info,实际上是因为你导入的这个项目使用的gradle与你已经拥有的gradle版本不一致,导致需要下载该项目需要的gradle版本,不知是被墙了还是什么原因,反正就是会一直卡住,直至下载完成(如果能下载完成的话,233) > 网上也提供了方法,就是去官网下载gradle的版本,然后放到本地,我就不在这里介绍了,我的解决方法更简单一些,就是直接修改gradle-wrapper.properties文件,无需去下载gradle > 解决方案: > 1.随便找一个你能运行的as项目 > 2.打开gradle-wrapper.properties,文件目录:项目/gradle/wrapper/gradle-wrapper.properties > 3.复制distributionUrl这一整行的内容,eg: distributionUrl=[https://services.gradle.org/distributions/gradle-2.4-all.zip][https_services.gradle.org_distributions_gradle-2.4-all.zip] > 4.打开你要导入的项目的gradle-wrapper.properties,具体步骤与步骤2相同 > 5.把步骤3复制的内容,替换你要导入的项目的gradle-wrapper.properties文件的distributionUrl这一行 > 6.再重启as,导入项目就可以了 ### app文件夹下Module的gradle配置文件一些常用配置 ### // 声明是Android程序apply plugin: 'com.android.application' android { // 编译SDK的版本 compileSdkVersion 21 // build tools的版本 buildToolsVersion "21.1.1" defaultConfig { // 应用的包名 applicationId "me.storm.ninegag" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0.0" } // java版本 compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } buildTypes { debug { // debug模式 } release { // 是否进行混淆 minifyEnabled false // 混淆文件的位置 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } } // 移除lint检查的error lintOptions { abortOnError false }} dependencies { // 编译libs目录下的所有jar包 compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:support-v4:21.0.2' compile 'com.etsy.android.grid:library:1.0.5' compile 'com.alexvasilkov:foldable-layout:1.0.1' // 编译extras目录下的ShimmerAndroid模块 compile project(':extras:ShimmerAndroid')} ##### 以上就是我在做项目使用Gradle的时候遇到的一些问题,做了个记录,如果大家也遇到这些问题,希望能对你有所帮助。 ##### [Gradle]: https://gradle.org/install [https_services.gradle.org_distributions_gradle-2.14.1-all.zip]: https://services.gradle.org/distributions/gradle-2.14.1-all.zip [Link 1]: https://jcenter.bintray.com/com/android/tools/build/gradle/ [SouthEast]: /images/20220604/618510da605e4c53b7b3ce134368dc56.png [SouthEast 1]: /images/20220604/e084609bdecd4708b050b1d2a31c1d31.png [SouthEast 2]: /images/20220604/2fbd6b5a66774f05abec205ab61a017b.png [https_services.gradle.org_distributions_gradle-2.2.1-all.zip]: https://services.gradle.org/distributions/gradle-2.2.1-all.zip [SouthEast 3]: /images/20220604/864899c029c54658b2a9be01ffa024eb.png [SouthEast 4]: /images/20220604/3122a2e52b8b4eaf9dceb2b145f22189.png [https_services.gradle.org_distributions_gradle-2.4-all.zip]: https://services.gradle.org/distributions/gradle-2.4-all.zip
还没有评论,来说两句吧...