gradle导入开源工程常见的错误(持续更新中)

Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置,而不是传统的XML。当前其支持的语言限于Java、Groovy和Scala,计划未来将支持更多的语言。(百度上拿来的)
至于gradle的更多详情,感兴趣的小伙伴可以阅读http://www.cnblogs.com/davenkin/p/gradle-learning-1.html

下面我们就列举一些因gradle的原因导致的错误

错误1

  • 导入项目时的错误
    这里写图片描述

作为一个程序猿,在工作之余查看别人的代码,借鉴别人的思维是很重要的,而快捷方便的方式无疑是将别人的项目从github或别的地方下载下来,然后导入我们自己的AS中,然后再慢慢炮制,但如果我们在导入项目的时候报出如上错误,!!!

好了废话不多说,看解决办法

  • 只需要在项目外层的builde.gradle中添加如下代码
buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:2.3.3'
  }
}
allprojects {
  repositories {
    mavenCentral()
  }

注意!!
这里写图片描述

  • 上面红色箭头所指的部分,并不一定要和楼主的一样,最好找到你自己可以运行的项目,然后降之拷贝过来替换掉

错误2

依然是导人项目时容易出现的错误

这里写图片描述

解决办法

  • 在最外层的build.gradle的allprojects中添加如下代码,尤其是下面红色箭头标注的地方
allprojects {
    repositories {
        jcenter()
        maven { url "https://jitpack.io" }
    }
}

这里写图片描述

错误3

Error:No resource identifier found for attribute ‘roundIcon’ in package ‘Android’

roundIcon是个高版本里面才有的东东,低版本是没有的,一般是由于调节targetSdkVersion版本造成的

解决办法:

删除清单文件中的:
android:roundIcon=”@mipmap/ic_launcher_round” 这句话就OK了

只要看到Error:No resource identifier……,肯定是xml文件里面出问题了,盯着找就好了

如果是in package ‘XXX’,这个多半就是自己定义的控件在应用的时候出了问题。

**

错误4

**
android studio更新2.0后出现的Gradle sync failed: Unknown host等gradle问题解决办法

听说这次as更新2.0后可以实时调试,我靠,这么牛瓣的更新诱惑让我迫不及待的更新了,下载安装后默认打开了之前的项目,发现Gradle一直出现问题,开始是Gradle sync failed: Unknown host ‘jcenter.bintray.com’. You may need to adjust the proxy settings in Gradle. Consult IDE log for more details (Help | Show Log)

这种问题,好吧,我上网搜索解决办法,改了build.gradle和gradle.properties,什么的,然后发现消除一个问题会又出现一个问题,正当我后悔更新的时候突然想到了可不可以用as2.0新建一个项目然后把build.gradle和gradle.properties替换了之前项目的这两个玩意,抱着试一试的心态给它替换了,结果….当然是搞定了!然后可以尽情的享受instant debug了,哈哈哈~

https://docs.gradle.org/current/userguide/userguide_single.html#sec:accessing_the_web_via_a_proxy

**

错误5

**
这里写图片描述

解决办法

gradle-wrapper.properties里修改了gradle的版本,与之前没有报错的gradle版本一致。就可以了

这里写图片描述

错误六6

自从AS升级到3.0后gradle又出现了许多新坑

gradle:3.0.0出现Error:(43, 0) Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.

解决办法

出错在最后一行,应该是新版Gradle的问题,最后在Stackover Flow找到解决办法,参考

https://stackoverflow.com/questions/44239235/android-gradle-3-0-0-alpha2-plugin-cannot-set-the-value-of-read-only-property

把 variant.outputs.each 改成

 variant.outputs.all

最后一行改成

outputFileName = fileName

错误7

Error:All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html

解决办法


defaultConfig {
targetSdkVersion:*
minSdkVersion :*
versionCode:*
versionName :*
//版本名后面添加一句话,意思就是flavor dimension 它的维度就是该版本号,这样维度就是都是统一的了
flavorDimensions “versionCode”
}

错误8

Error:java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
这里写图片描述

解决办法

在gradle 3.0.0中AAPT2是默认打开的,在项目的gradle.properties中添加android.enableAapt2=false,sync后就编译通过了。
这里写图片描述

欢迎关注作者微信公众号
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值