如果使用Crashlytics,如何使用“应用更改”?

时间:2019-05-13 18:17:29

标签: android android-studio android-gradle

我正在使用Android Studio 3.5 Beta1。我决定尝试“应用更改”。 Instant Run出现问题,因此我们将其禁用了很多年。我希望这会更好。

如果我尝试“应用代码更改”按钮,则在“运行”窗口中出现错误:

Changes were not applied.
Modifying resources requires an activity restart.
Resource 'assets/crashlytics-build.properties' was modified.
Apply changes and restart activity

crashlytics-build.properties的评论中说

#This file is automatically generated by Crashlytics to uniquely
#identify individual builds of your Android application

实际上,它具有build_id属性,该属性可能随Gradle的每次构建而变化。而且由于每当我使用“应用代码更改”或“应用更改并重新启动活动”按钮时Gradle都会运行构建,因此Gradle构建会更改文件,从而阻止Apply Run完成。

我在网上找到的唯一与此相关的信息是Reddit comment的一句话

  

我了解了crashlytics + proguard中断即时运行的困难方式

所以看来我不是唯一遇到此问题的人。删除Crashlytics并不是一种选择。我也不想在每次调试时都禁用它,然后再次重新启用它。

“应用更改并重新启动活动”按钮起作用。我正在使用的活动重新启动,并且更改可见。我尝试比较使用常规“运行”按钮的时间。 “应用更改并重新启动活动”需要花费同样长的时间。唯一的好处似乎是,我不必每次都在应用程序中导航到该屏幕,而是可以保留在该屏幕上并重新加载更改。这是一个不错的好处,我只是期望更多。

我可以做些什么使我更有效地执行“应用更改”吗?

1 个答案:

答案 0 :(得分:0)

您可以在Crashlytics中为调试版本关闭此行为:https://docs.fabric.io/android/crashlytics/build-tools.html#optimize-builds-when-you-re-not-proguarding-or-using-beta-by-crashlytics

在Gradle文件中将ext.alwaysUpdateBuildId设置为false,以设置调试版本:

android {
    buildTypes {
        debug {
          // Only use this flag on builds you don't proguard or upload to beta-by-crashlytics
          ext.alwaysUpdateBuildId = false