Databinding 编译抓瞎(org.gradle.api.GradleException: Compilation error. See log for more details)

一、概述背景

databinding 出来好久好久了, 一直是拒绝使用的, 最早的原因就是 出错了抓瞎找不到错误,报一个统一的错误,一脸懵逼。
新项目使用mvvm,databinding 是基础组件。 代码写啊写,接着编译 运行,找出错误修复,喝口水,检查功能,如此流程,一去不复返。 步履维艰,写代码不敢写多,差不多就得编译下,因为啥,因为抛出错误是统一错误,找不到出错在哪里,得看git history 或者local hisory 自己改了啥,去注释分析瞅瞅。

周六原来是想把一个功能写完善下,结果又抓瞎报错了,特点花时间记录下,下回做明瞎。

下文举例一个faq:org.gradle.api.GradleException: Compilation error. See log for more details

二、faq:org.gradle.api.GradleException: Compilation error. See log for more details

对的, 出错了就是报这个。
在这里插入图片描述

点开左边的task 树
在这里插入图片描述
报的是kotin,kapt 编译的错误。

三、懵逼的分析误区

报错里有报kotlin 字眼, 由于主项目是 java 写的,我的模块有局部文件是kotlin,很容易造成是kotlin混编导致的错误不明确,或者kotlin 混编没搭建好的既视感。然java kotlin混编,纯kotlin开发,是已经有1-2年的项目经验的。虽然有这种自信但是还是会怀疑是不是混编导致的。通过瞎搜,有说混编用databinding 要加:
kapt "com.android.databinding:compiler:3.1.4"

感觉蛮有道理的,然而无用。

四、正确的分析

经验分析:按经验这种错误,就是databinding 导致的统一报错,databinding 出错就是xml 里写错了,或者对应的vm 没写对,有时候是会报出明细错误的,有时候就报这种笼统错误,抓瞎,然后一个个去看改动后和历史正确的有啥区别。

正确分析:以前但凡报错找不到错的,会报

	Run with --stacktrace option to get the stack trace. Run with --info pr --debug ...
    Run with --debug option to get more log output. Run with --scan to get full insights.

虽然databinding 的这种不报这个错误,不凡试试,经典的

	--stacktrace --debug
	--stacktrace --debug --scan

操作步骤:
之前有写一篇FAQ(Run with --stacktrace option to get the stack trace. Run with --info pr --debug …)

**注意:**这里有细节,新版本的android studio 报错的时候 经常出现的是目录树这边的结构,而不是传统的直接都是log的形式,这里有个切换按钮

五、出结果

在这里插入图片描述

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值