Android:应用程序在即时运行时经常崩溃

标签 android android-instant-run

在我的 Android 应用程序中,我在启用即时运行的情况下对其进行调试。

该应用程序经常给我意外错误,如果我进行了干净的构建,这些错误就会得到解决。

举个例子,有时会出现类未找到的异常,而类实际上是存在的。此外,有时在尝试将 findViewById() 返回的 View 转换为目标类型时会出现类转换异常(可能是 android studio 在热部署时误解了元素 ID布局)。

所有这些错误都可以在不更改代码的情况下得到解决,只需进行完整构建即可。 Instant Run 成功地使我的构建过程慢了两到三倍。

为什么会出现这些错误?有谁知道如何让即时运行正常工作?

最佳答案

你不是唯一一个。 Instant Run 目前不太稳定,或者我们可以说不可靠。

Instant Run 有几个交换步骤,如 this document describes .在您的情况下,Instant Run 无法很好地识别您的更改,即使需要冷交换也无法进行热交换,等等。

Instant Run 在编辑次要 GUI 位置时很有用,我想说它是目前唯一有用的场景,所以我建议您在一般开发过程中将其关闭。您可以通过取消选中 Settings > Build, Execution, Deployment > Enable Instant Run to hot swap... 复选框来禁用它。

如果你觉得 Instant Run 很花哨,还想用它,你可能会多次遇到这样的问题。为此,只需按照您的经验重建所有内容。这就是我们现在所能做的。

关于Android:应用程序在即时运行时经常崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38004581/

相关文章:

java - 如何将正确的数据传递给 Android OpenGL-ES 2.0 着色器程序

Android Studio 2.3 更新未打开应用程序 [即时运行服务]

javascript - WebView JavaScript 接口(interface)似乎只能通过 Android Studio 的 Instant-Run 运行,但在通过常规 gradle 编译时却不行

android - 创建 apk : 'signingConfig.storeFile' does not exist 时出现问题

java - 不同屏幕尺寸的不同位置

java - 让多个联系人显示在我的应用程序中有点困难。

android - 无法解决Android Studio 3.1.3中的Gradle同步失败(4.4级)

android - 空 Activity 的 setContentView 上的 StrictMode 磁盘读取冲突

Android Instant Run First-time 安装后启动应用程序需要太多时间

android - 如何在 Flutter 中自动刷新 listView?