我正在开发一款新的Android应用,并遇到了一个奇怪的问题。
当我在摩托罗拉E(第二代)上安装应用程序的“发布”版本时,完整的手机会在几分钟后挂起并重新启动。如果我从Play商店安装或使用adb通过USB安装无关紧要,行为是一样的。
安装'debug'版本(通过USB)工作正常,安装后应用程序运行良好。
我碰巧有两个几乎完全相同的Motorole E(第二代)设备,这两个问题都发生了!我测试的所有其他(5+)设备都工作正常,但这些设备都是新设备。
但是这些改变并没有解决问题。
如果我在安装发行版本期间保持“adb shell”处于打开状态,则命令行会逐渐降低响应速度,直到它挂起。 'dex2oat'似乎最终位于进程列表的顶部,即使它只需要1%的CPU时间。
欢迎任何有关如何继续调试此问题的提示!
答案 0 :(得分:0)
我找到了罪魁祸首。 apk中包含一个巨大的库,使代码大小超过5MB。 Dex2oat在编译最终崩溃设备的代码时使用了大量内存。
重构我的项目,因此不再包括巨大的库(由我的项目中的离线工具使用但不包括Android部分)解决了这个问题。