build.gradle这行
configurations.compile.exclude module: 'org.eclipse.paho.client.mqttv3'
报错
Could not get unknown property 'compile' for configuration container of type org.gradle.api.internal.artifacts.configurations.DefaultConfigurationContainer.
最后还是gradle版本问题
gradle-wrapper.properties修改gradle版本为6.7.1
distributionUrl=https://services.gradle.org/distributions/gradle-6.7.1-bin.zip
build.gradle修改为
dependencies {
classpath 'com.android.tools.build:gradle:4.2.0'
}
问题解决,参考google官网
https://developer.android.google.cn/studio/releases/gradle-plugin?hl=zh-cn#updating-plugin
在第二章中分析项目结构时我们说过build.gradle
这个文件是构建脚本文件,它的本质是在其中定义了一个project
和若干tasks
当我们在命令行中输入gradle build
(或gradlew build)命令进行项目构建时,Gradle会自动在当前目录下去寻找build.gradle
文件,按照里面定义的脚本进行构建。
以一个小demo为例,我们在一个空目录中新建一个文件build.gradle
task hello {
doLast {
println 'Hello world!'
}
}
在当前目录下打开命令行,输入gradle -q hello
,会输出以下结果(注:-q参数是为了不让Gradle的日志打印出来,只让我们输出的字符串显示)
> gradle -q hello
Hello world!
在这个demo中,我们在build.gradle中定义了一个任务hello,并在其中添加了一个动作——打印"Hello wold!",然后当我们在命令行执行gradle -q hello
命令时就会执行这个task。
解决方案:
确认错误信息,查看报错的具体信息和出现的位置,尝试理解错误原因。
尝试将Gradle版本降级到7.1.3,编译成功的话可以认为是可靠的解决方法。可以在gradle-wrapper.properties文件中将distributionUrl改为https\://services.gradle.org/distributions/gradle-7.1.3-all.zip。
如果降级不可行,可以尝试修改build.gradle文件中报错的那行代码,或者更新相关依赖包版本。
如果以上方法都不可行,可以查看Gradle官方文档或者向相关论坛发帖求助。
代码示例:
在gradle-wrapper.properties文件中修改distributionUrl属性:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.3-all.zip
在build.gradle文件中更新依赖包版本:
dependencies {
classpath 'com.android.tools.build:gradle:7.1.3'
//其他依赖包
}
在build.gradle文件中修改报错的那行代码,具体根据报错信息而定:
//修改前
implementation 'com.example:example:1.0.0'
//修改后
implementation 'com.example:example:1.0.1'
注意:以上代码示例仅供参考,具体修改需要结合实际情况而定。