2

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

4

3 回答 3

9

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

+--------------------------------------+-----------------------------------------+
|           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.                                |
+--------------------------------------+-----------------------------------------+

以下是 Instant Run目前不支持的一些代码更改:

  • 添加/删除/更改注释
  • 添加/删除/更改实例字段
  • 添加/删除/更改静态字段
  • 添加/删除静态方法签名
  • 更改静态方法签名
  • 添加/删除实例方法
  • 更改实例方法签名
  • 更改当前类从哪个父类继承
  • 更改已实现接口的列表
  • 更改类的静态初始化程序

我在测试 Instant Run 时也有过类似的经验,但在现阶段这是可以预料的。嘿,在 Android 开发者峰会期间,它甚至没有为 Dave Burke 工作几次;)

于 2015-11-29T17:13:21.847 回答
2

gradle apt 的用法怎么样apply plugin: 'com.neenbedankt.android-apt'?使用 apt 会阻止 Android Studio Instant Run 热交换代码吗?

就我而言,我使用 Dagger 2 并且 Instant Run 似乎不起作用....我错过了什么吗?

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

于 2015-12-12T19:51:06.143 回答
1

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

  • gradle 版本的 Android 插件必须是 2.0.0 或更高版本
  • minSdkVersion必须为 15 岁或更高
  • 同时,如果你的应用使用了multidex support(multiDexEnabled true),minSdkVersion必须是21或更高。否则,android studio 会禁用 Instant Run。

参考:

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

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

于 2016-06-20T08:41:18.377 回答