添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
文质彬彬的大象  ·  Deployment | ...·  1 月前    · 
玩滑板的小虾米  ·  Orchestrator - ...·  2 月前    · 
玩足球的炒粉  ·  How to Apply Free ...·  2 月前    · 
深沉的鸡蛋面  ·  [Unity] ...·  5 月前    · 

View | Tool Windows | Run

如图,通过 View | Tool Windows | Gradle | Run Gradle Task 这种方式执行的任意Gradle命令,输出都会出现在 View | Tool Windows | Run

同时,用这种方式执行过的gradle命令,idea会创建一个 Run Configurations ,后续点击 Run 按钮执行这个的输出也还在同样的位置。

View | Tool Windows | Build

执行Android的Run Configurations就会出现在这个Panel。特别的是,IDE的Sync过程的输出,会在 View | Tool Windows | Build | Sync , 其他的输出都在 View | Tool Windows | Build | Build Output

Android Studio有个傻缺行为是,执行任何Gradle的任务之后,都会附带一次自动的Sync操作。所以Studio会主动跳到 View | Tool Windows | Build | Sync 窗口。

你必须注意,如之前所说,如果你是通过 link::通过 View | Tool Windows | Gradle | Run Gradle Task 执行的[Run Gradle Task]调用的gradle,它的输出不会出现在这个窗口。

这类问题,因为都是由Gradle调用的外部程序发现的(如javac,aapt,dex,proguard),所以最后的Exception不会包含任何有用信息。 请不要只看最后的异常, 你需要往前翻日志来发现问题 。 javac,aapt,dex,proguard等外部程序往往会将错误信息以ERROR级别输出到日志。

与很多人的常识相反的事,这类问题你应该尽可能的关闭Gradle的日志输出,而不是让gradle输入更详细的日志。如果你开启了 --info 参数,你应该删掉这个参数;你甚至可以使用 --quiet 参数来关闭任何干扰输出(ERROR级别在quiet也会输出)来定位问题。

使用 --info 之后的输出日志一般能达到数MB,你能在这么多信息里找到一行毫不起眼的aapt的错误信息吗?

Gradle Plugin问题或Gradle Bug

另一类问题是由于一些Gradle Plugin自身错误引起,有可能是build.gradle中配置的问题,也可能是plugin的bug。这类问题正好与前一节项目源码的问题相反。 定位问题的原因往往需要关注最后的Exception,如果Exception缺乏信息,就需要使用 '--info' 甚至 '--debug' 开启更详细的日志输出。

使用 --stacktrace 等参数

在使用 View | Tool Windows | Gradle | Run Gradle Task 执行的时候,你是可以直接增加参数 --stacktrace 的,最后输出的信息就会有出错栈信息。

但是对 下图的这种,以及 Sync,是不奏效的。

你如果想这种情况也有栈信息,需要在 link::jetbrains://idea/settings?name=Build%2C+Execution%2C+Deployment—​Compiler[ Preferences | Build, Execution, Deployment | Compiler ] 中增加参数。只有这里的是对Sync以及Android Build Configurations生效的。