dex2oat Сбой на Android 6 / Marshmallow - В доступе отказано - Не связано с мгновенным запуском - PullRequest
0 голосов
/ 15 мая 2018

В нашей производственной сборке (выполняется на CI-сервере, поэтому не требуется Instant Run), пользователи сообщают, что приложение либо:

  • занимает много времени (> 10 минут) для установки, возможно, никогда не завершится

или

  • после перезагрузки они видят «Оптимизация приложений 1 из 1» с нашим установленным приложением.

С несколькими отчетами об ошибках на этом этапе общий поток, похоже, завершается с ошибкой процесса dex2oat:

dex2oat : /system/bin/dex2oat --compiler-filter=speed --dex-file=/data/app/**packagename**-1/base.apk --oat-file=/data/dalvik-cache/arm64/data@app@**packagename**-1@base.apk@classes.dex E dex2oat : Failed to create oat file: /data/dalvik-cache/arm64/data@app@**packagename**-1@base.apk@classes.dex: Permission denied 05-11 20:48:21.783 7316 7316 I dex2oat : dex2oat took 3.058ms (threads: 8) 05-11 20:48:21.793 7293 7293 W art : Failed execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --compiler-filter=speed --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/**packagename**-1/base.apk --oat-file=/data/dalvik-cache/arm64/data@app@**packagename**-1@base.apk@classes.dex) because non-0 exit status

Эта проблема наблюдается у нескольких производителей (Samsung, Kyocera, Blackberry) и телефонов. Пока что все сообщения об ошибках, которые у меня есть, относятся к Android 6.0.X

  • Версия Gradle: gradle-4.4
  • Плагин Gradle: 'com.android.tools.build:gradle:3.1.2'
  • compileSdkVersion 26
  • buildToolsVersion '27 .0.3 '
  • minSdkVersion 19
  • targetSdkVersion 26
  • Multidex версия 1.0.3

Мне известно о нескольких ошибках с похожими симптомами при Мгновенном запуске, но я не верю, что это так. Я также видел несколько других, более старых вопросов здесь, но только ответы, связанные с Instant Run, имеют какие-либо ответы, или они имеют более старые версии инструментов plugins / gradle / build.

Сравнивая последнюю версию, которая была у нас до того, как мы начали получать эти отчеты, единственное, что я думаю, может иметь значение, это то, что я обновил библиотеку Multidex с 1.0.2 до 1.0.3.

Конечно, мне не удалось воспроизвести проблему ни на одном из моих тестовых устройств, в любой версии ОС, включая их сброс до заводских настроек.

У кого-нибудь есть мысли, предложения или даже вещи, которые можно попробовать? У меня быстро заканчиваются идеи.

Дополнительная информация

Наконец-то взявшись за одно из устройств, где эта проблема очевидна, некоторые дополнительные факты:

  • Проблема также возникает при установке через adb
  • Проблема возникает с локально скомпилированным двоичным кодом
  • Если для двоичного файла установлено значение debuggable true, установка будет выполняться с 9:43 до менее 20 секунд. Это верно, даже если я оставлю другие настройки, такие как proguard и minification, включенными.

1 Ответ

0 голосов
/ 30 мая 2018

Похоже, что плагин Gradle 3.1.2 вызывает проблему

Я былв состоянии подтвердить, что это ошибка в плагине Android Gradle версии 3.1.2.Вернувшись к 3.0.1, я смог скомпилировать идентичный код и получить его dex2oat сразу и успешно.Эта проблема также присутствует в плагине Gradle 3.2.0-alpha15.

...