【问题标题】:Motorola E (2nd gen) reboots when installing release apk but not when installing debug apk摩托罗拉 E(第 2 代)在安装发行版 apk 时重新启动,但在安装调试 apk 时不重新启动
【发布时间】:2018-05-21 10:30:07
【问题描述】:

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

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

安装“调试”版本(通过 USB)工作正常,安装后应用运行良好。

我碰巧有两个几乎相同的 Motorole E(第 2 代)设备,问题都发生在它们身上!我测试过的所有其他 (5+) 设备都可以正常工作,不过这些都是较新的设备。

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

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

  • 发布版本(目前处于封闭 alpha 阶段)不使用 proguard(目前)。
  • Multidex 在发行版和调试版中均已启用。
  • compileSdkVersion=27

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

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

【问题讨论】:

    标签: android installation apk release reboot


    【解决方案1】:

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

    重构我的项目,以便不再包含庞大的库(由我的项目中的离线工具使用,但不是由 Android 部分使用)解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2011-04-09
      • 2012-01-21
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 2015-06-14
      • 1970-01-01
      相关资源
      最近更新 更多