alibaba / freeline

A super fast build tool for Android, an alternative to Instant Run
https://www.freelinebuild.com/
BSD 3-Clause "New" or "Revised" License
5.48k stars 623 forks source link

[问题排查] 反复全量、编译速度无提升 #366

Open lomanyong opened 7 years ago

lomanyong commented 7 years ago

以下操作建议使用python freeline.py -d命令来查看详细日志:

通常,freeline 在全量编译后,会自动进行增量编译,但是在以下几种情况下,会从增量转入全量编译:

也有一种情况,每次都出现一句日志:[WARNING] check sync status failed, a clean build will be automatically executed.

这句日志的意思是,通过 adb 连接上的设备上找到了与本地编译的项目相同 uuid 的应用(通常是同个项目使用 freeline 打包安装上的),但是在进行基线校验的时候校验失败,需要重新打包编译。Freeline 的基线校验值由 apk 打包的时间与增量次数共同生成,用于保证本地编译的版本与设备上安装的版本是完全一致的。主要是在切换设备的时候,容易出现这个问题。

正常情况下,一次全量编译后就会恢复正常,但也有可能会反复出现这句日志,一直无法恢复增量编译,这种时候首先需要检查一下 PC 上是否连接了多台设备,或者 Android 模拟器 + 真实设备。如果有的话,首先保持只有一台设备或者模拟器。

如果还是反复出现这个日志的话,可以尝试把手机上的 apk 先卸载了,再重新用 freeline 编译安装。(如果是这个原因的话,可能是 freeline 的缓存不更新的 bug 导致的,近期会解决)

如果是提示:"try to connect device/ connect_device_task failed." 的话,可以参考 #152

其余的相关现象,无法解决的,可以带上日志在 issue 下进行回复。

aa5279aa commented 7 years ago

之前也遇到过这样的情况。 重装了freeline就解决了,原因未定位,只是每次都提示同步增量flag失败

lozery commented 7 years ago

出现反复全量编译增量编译成功,但代码未改变的情况下 先按照 #152的方式检查,若还不行, 请在住Model中的build.gradle设置 debuggable 如下

buildTypes {
        debug {
            debuggable true
        }
}

刚发现的,具体原因还未深究。

xiyouMc commented 6 years ago

卸载 App 重新安装 就好了。