【问题标题】:Android Studio 2.0: Why does Instant Run not work when modifying xml layout resources?Android Studio 2.0:为什么修改xml布局资源时Instant Run不起作用?
【发布时间】:2015-11-24 19:44:49
【问题描述】:

这是一个非常新的功能,因为 Android Studio 2.0 仅在金丝雀发布频道中可用,但我希望有人能进一步解释 Instant Run 功能的工作原理。

如果我在我的 Java 类(活动、片段等)中修改代码,那么 Instant Run 可以顺利运行。它使应用程序的实例保持运行并在幕后换出代码,大大缩短了我测试所需的时间(这太棒了,顺便说一句)。

但是,如果我修改现有布局 xml 资源,则它必须重新编译构建并部署它。所以我的问题是:

  1. 为什么修改现有布局xml资源需要重新构建?
  2. 未来是否有计划允许热交换 XML 资源,这样我就不必在每次想要看到布局更改时都重新构建? (不过,我知道我只能在设计视图中查看更改)。

问题 #1 目前对我来说更重要,因为我想了解它是如何工作的。 另外,祝贺 Android Studio 团队。 IDE 已经走过了漫长的道路。性能改进改变了生活。

【问题讨论】:

  • "为什么修改现有布局xml资源需要重新构建?" -- 可能是R 类的变化。从他们的演示来看,听起来并非每一次改变都必然会进行全面重建。 Android 开发者峰会正在进行中;您会想在 YouTube 上观看今天会议的视频,其中讨论了许多此类细节,至少在有限的层面上进行了讨论。 “有计划吗”之类的问题和“恭喜”最好直接找谷歌; Stack Overflow 不是 Google。
  • 这只是一个猜测,但它可能与资源文件的工作方式有关吗?基本上,XML 文件在构建时被翻译成 Java 文件。这就是为什么每当我们对 XML 文件进行更改时,旧版本的 IDE 都需要整个“清理”步骤。
  • 我认为我们应该等到最终版本发布...预览版本总是充满错误,我们不知道那是否是其中之一。另外,正如@CommonsWare 所说,R 可能会发生变化。
  • 我只是在您描述的两种情况下(修改 Java 代码和修改 XML 布局)都尝试了这个,并且似乎以相同的方式部署它。 (我尝试的两种情况都非常简单。更改活动的背景颜色,并添加敬酒消息。在一个干净的项目上)
  • @CommonsWare,我知道 Stack Overflow 不是 Google,但是您会惊讶于 Stack Overflow 上活跃的 Google Developer Advocates 的数量。我确实同意现在问这个问题还为时过早,但我实在是太好奇了,无法等待有关它的视频讲座。此外,值得将其公开以供其他人讨论,因为我知道我们都对此感到非常兴奋。

标签: android android-studio


【解决方案1】:

如您所知,xml 文件中使用的所有资源都转换为 R 类中的静态字段。根据从http://tools.android.com/tech-docs/instant-run 获得的信息,即时运行不支持更改静态字段。

【讨论】:

  • 至少目前... 添加或删除字段目前是不兼容的更改,需要完全重建,但 Google 正在努力解决此问题。到 2.0 发布时,稳定的频道修改字段可能也可以热插拔了。
【解决方案2】:

只是一点提示。当我从 Android Studio 1.5 切换到 2.0(稳定版)时,新的 Instant Run 不适用于布局更改。 我尝试了Run > Clean and rerun app 并解决了,因为那一刻 Instant Run 有效。

【讨论】:

    【解决方案3】:

    更新:

    Google 推出 Android Studio 2.0 beta,提供冷交换、应用索引改进和多点触控支持。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-02
      • 2016-03-27
      • 2018-09-16
      • 1970-01-01
      • 2017-10-18
      • 2022-12-30
      • 2018-04-10
      • 2020-02-08
      相关资源
      最近更新 更多