摩托罗拉E(第二代)在安装release apk时重新启动但在安装调试apk时没有重启

时间:2018-05-21 10:30:08

标签: android install apk release reboot

我正在开发一款新的Android应用,并遇到了一个奇怪的问题。

当我在摩托罗拉E(第二代)上安装应用程序的“发布”版本时,完整的手机会在几分钟后挂起并重新启动。如果我从Play商店安装或使用adb通过USB安装无关紧要,行为是一样的。

安装'debug'版本(通过USB)工作正常,安装后应用程序运行良好。

我碰巧有两个几乎完全相同的Motorole E(第二代)设备,这两个问题都发生了!我测试的所有其他(5+)设备都工作正常,但这些设备都是新设备。

  • 我尝试禁用aapt2(gradle.properties中的android.enableAapt2 = false)。
  • 我尝试在内部存储上强制安装(在Manifest中安装android:installLocation =“internalOnly”)。

但是这些改变并没有解决问题。

  • 发布版本(目前处于封闭式alpha版本)不使用proguard(尚未)。
  • 在版本和调试版本上都启用了Multidex。
  • compileSdkVersion = 27

如果我在安装发行版本期间保持“adb shell”处于打开状态,则命令行会逐渐降低响应速度,直到它挂起。 'dex2oat'似乎最终位于进程列表的顶部,即使它只需要1%的CPU时间。

欢迎任何有关如何继续调试此问题的提示!

1 个答案:

答案 0 :(得分:0)

我找到了罪魁祸首。 apk中包含一个巨大的库,使代码大小超过5MB。 Dex2oat在编译最终崩溃设备的代码时使用了大量内存。

重构我的项目,因此不再包括巨大的库(由我的项目中的离线工具使用但不包括Android部分)解决了这个问题。