Gradle从4.2升级至7.0报错:Unexpected input: '{' 求解决方案
解决Gradle 7.x构建报错问题
问题根源
报错看似指向{,实际是代码中使用了Groovy保留关键字package作为任务引用,加上Gradle 7.x对语法严格性提升、taskGraph.hasTask参数要求变化,导致解析失败。
修复步骤
替换保留关键字
package
Groovy里package是保留字,不能直接用来引用任务,需明确指定任务:
若引用当前模块的package任务,可二选一修改:// 方式1:通过任务名称获取任务对象 if (taskGraph.hasTask(tasks.named('package'))) {或
// 方式2:使用任务路径字符串(兼容性更好) if (taskGraph.hasTask(':package')) {如果是子模块任务,要写全路径,比如
':iOS:package'。优化属性获取(可选)
代码里buildType = buildtype可以更严谨地写成:buildType = project.getProperty('buildtype')避免潜在的作用域问题。
修复后代码示例
gradle.taskGraph.whenReady { taskGraph -> if (taskGraph.hasTask(':package')) { if (project.hasProperty('buildtype')) { buildType = project.getProperty('buildtype') println "### Project has buildType = $buildType" } } }
内容的提问来源于stack exchange,提问作者Faisal
相关产品推荐
相关产品推荐

