Android Studio 2.0 Instant 运行 不工作

Android Studio 2.0 Instant Run Not Working

即时 运行 这一新功能并不总是像描述的​​那样工作。 我只是在文本和 Instant 运行 中修改了一种油漆颜色,它会重新启动 activity!但是在修改了一些其他代码之后,Instant 运行 工作得很好。 我错过了什么吗?

Instant 运行 看起来是我们工具库中的一个很棒的工具,请记住它是 Android Studio 2.0 的新增功能,它是仍在预览(金丝雀频道),因此可能会有一些问题。正如 Google 所说,他们计划在未来几个月内对其进行改进。在撰写本文时,支持以下内容:

+--------------------------------------+-----------------------------------------+
|           Code Change                |         Instant Run Support             |
+--------------------------------------+-----------------------------------------+
| Change instance method implementation| Supported                               |
| Change static method implementation  |                                         |
| Add or remove a class                |                                         |
|--------------------------------------|-----------------------------------------|
| Add, remove, or change               | Supported but requires an Activity      |
| a string resource                    | restart.                                |
+--------------------------------------+-----------------------------------------+

here是Instant 运行 目前不支持的一些代码更改:

  • Add/remove/change 注释
  • Add/remove/change一个实例字段
  • Add/remove/change 静态字段
  • Add/remove 静态方法签名
  • 更改静态方法签名
  • Add/remove一个实例方法
  • 更改实例方法签名
  • 正在更改 parent class 当前 class 继承自
  • 更改已实现接口列表
  • 正在更改 class
  • 的静态初始值设定项

我在测试 Instant 运行 时也有类似的经历,但现阶段这是意料之中的事情。嘿,it didn't even work few times 在 Android 开发者峰会期间代表 Dave Burke ;)

gradle apt 用法如何,例如apply plugin: 'com.neenbedankt.android-apt' ? 使用 apt 是否会阻止 Android Studio Instant 运行 热交换代码?

在我的情况下,我使用 Dagger 2 和 Instant 运行 似乎不起作用....我是否遗漏了什么?

编辑: 不 - 它不! :) 我的安装显然遗漏了一些东西——就像在 Dave 的演示中一样。 Instant 运行 在 2.0 预览版 3b 上似乎仍然不稳定...

即时 运行 功能需要一些规则;

  • Android gradle 版本的插件必须为 2.0.0 或更高版本
  • minSdkVersion 必须为 15 或更高
  • 同时,如果您的应用程序使用 multidex 支持 (multiDexEnabled true),则 minSdkVersion 必须为 21 或更高。否则,android studio 会禁用 Instant 运行。

参考:

https://developer.android.com/studio/run/index.html#instant-run https://developer.android.com/studio/build/multidex.html#about

但我仍然可以在我的项目中使用即时 运行 的热插拔功能,即使它的最低 sdk 版本是 14。