赞
踩
1.gradle在Android构建过程的作用
gradle是Android里最方便也是最好的用来管理第三方库和打包用的工具。
自动下载多种类型依赖库:本地、库依赖、远程依赖。
最方便的地方是支持自定义打包脚本,为多渠道打包提供了便捷的基础。
Android Studio自带的Maven源地址是国外的,该Maven源在国内的访问速度很慢或无法访问,可以通过替换下载源为阿里云的方式解决(替换后可能报如下错误)
2.Android Studio gradle编译过程报如下错误的解决方法
- Error:Could not resolve all dependencies for configuration ':app:debugCompileClasspath'
- Could not load module metadata from C:\Users\LENOVO\.gradle\caches\modules-2\metadata-2.71\...
- Unexpected metadata type found
- C:\Users\LENOVO\.gradle\caches\modules-2\metadata-2.71\
- 1.其中根据报错提示,先关闭Android studio,然后删除以上目录中的metadata-2.71文件夹
- 2.保持联网状态,打开Android studio,此时Android studio同步时会下载许多依赖插件,等待完成即可
- 3.工程同步成功、编译应该也可以成功
按以上解决方法操作后,再次编译,可能会报如下错误(其中如果升级了Android studio版本后,编译之前的项目也可能失败,而报如下的类似错误)
Could not read entry ':app:processDebugManifest' from...
3.完美解决方法
(1).卸载Android studio
(2).删掉C:\Users\LENOVO\.gradle目录(删掉.gradle)
(3).安装最新的Android Studio
(4).首次启动Android Studio时,先注释build.gradle里"阿里云"源的配置
如图所示:
(5).Android Studio自带的下载源替换为阿里云的下载源
- buildscript {
- repositories {
- //ADD START
- maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
- maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
- maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
- maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
- //ADD END
- google()
- jcenter()
- maven {
- url 'https://maven.google.com/'
- name 'Google'
- }
- }
-
- dependencies {
- classpath 'com.android.tools.build:gradle:3.6.3'
- }
- }
- allprojects {
- repositories {
- //ADD START
- maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
- maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
- maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
- maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
- //ADD END
- google()
- jcenter()
- maven {
- url "https://jitpack.io"
- }
- maven {
- url 'https://maven.google.com/'
- name 'Google'
- }
- ......
- }
- }
(6).在C:\Users\LENOVO\.gradle\目录创建init.gradle配置文件
- allprojects{
- repositories {
- def MY_ALIYUN_REPOSITORY_URL = 'http://maven.aliyun.com/nexus/content/groups/public'
- def MY_ALIYUN_JCENTER_URL = 'http://maven.aliyun.com/nexus/content/repositories/jcenter'
- all { ArtifactRepository repo ->
- if(repo instanceof MavenArtifactRepository){
- def url = repo.url.toString()
- if (url.startsWith('https://repo1.maven.org/maven2')) {
- project.logger.lifecycle "Repository ${repo.url} replaced by $MY_ALIYUN_REPOSITORY_URL."
- remove repo
- }
- if (url.startsWith('https://jcenter.bintray.com/')) {
- project.logger.lifecycle "Repository ${repo.url} replaced by $MY_ALIYUN_JCENTER_URL."
- remove repo
- }
- }
- }
- maven {
- url MY_ALIYUN_REPOSITORY_URL
- url MY_ALIYUN_JCENTER_URL
- }
- }
- }
(7).Android Studio App项目工程同步成功、App项目编译成功
原文链接
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。