Motorola E (2nd gen) перезагружается при установке релиза apk, но не при установке debug apk - PullRequest
0 голосов
/ 21 мая 2018

Я занимаюсь разработкой нового приложения для Android и столкнулся со странной проблемой.

Когда я устанавливаю «релизную» версию приложения на Motorola E (2nd gen), весь телефон зависает и перезагружается послепара минут.Не имеет значения, если я устанавливаю из Play Store или через USB с помощью adb, поведение такое же.

Установка 'отладочной' версии (через USB) работает нормально, приложение работает отлично после установки.

У меня два почти идентичных устройства Motorole E (2nd gen), и проблема возникает на обоих!Все другие (5+) устройства, которые я тестировал на работе, работают нормально, хотя это все более новые устройства.

  • Я попытался отключить aapt2 (android.enableAapt2 = false в gradle.properties).
  • Я пытался принудительно установить внутреннее хранилище (android: installLocation = "internalOnly" в Manifest).

Но эти изменения не устранили проблему.

  • Версия выпуска (в настоящее время в закрытой альфа-версии) не использует proguard (пока).
  • Multidex включен как в версии выпуска, так и в версии отладки.
  • compileSdkVersion = 27

Если я сохраню открытую 'оболочку adb' во время установки версии выпуска, командная строка будет становиться все менее адаптивной, пока не зависнет.«dex2oat», похоже, находится в начале списка процессов, хотя это занимает всего 1% времени процессора.

Любые советы о том, как приступить к устранению этой проблемы, приветствуются!

1 Ответ

0 голосов
/ 02 июня 2018

Я нашел виновника.В apk была включена огромная библиотека, размер кода которой увеличился до 5 МБ.Dex2oat использовал так много памяти при компиляции кода, что в конечном итоге он сломал устройство.

Рефакторинг моего проекта, так что огромная библиотека (используемая автономными инструментами в моем проекте, но не частью Android) больше не была включена исправленавопрос.

...