Первый запуск занимает много времени (ClassLoader ссылается на неизвестный путь)

После обновления моей студии Android до 2.0 и gradle до 2.0.0 и SDK-платформы до 23.0.3. Когда я хочу для запуска приложения требуется слишком много времени (около 2-3 секунд), и в Android Monitor появляется следующее предупреждение:

W/System: ClassLoader referenced unknown path: /data/app/net.hadifar.test-1/lib/arm
W/System: ClassLoader referenced unknown path: /data/app/net.hadifar.test-1/lib/arm
 W/art: Suspending all threads took: 5.439ms
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
W/art: Suspending all threads took: 6.808ms

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

Ответ 1

В версии 2.0 была добавлена ​​новая функция instant-run.

Чтобы включить эту функцию, добавляется много метаинформации, поэтому первая сборка и загрузка занимает больше времени.

Знать о

Здесь мы можем написать (или проголосовать) issues (отчет, чтобы сделать лучший инструмент).

Ответ 2

В недавно выпущенном A.S 2.0 (или 2.1) есть странное поведение, и экран переходит в черный (или Activity пауза) в течение нескольких секунд. Поскольку doc объяснил, что первая сборка может занять больше времени A.S 2.0 Но эта проблема возникает во время выполнения.

Быстрое исправление, основанное на комментарии @Skadoosh, будет отключено мгновенный запуск:

Settings → Build, Execution, Deployment → Instant Run and uncheck Enable Instant Run

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

Когда вы развертываете чистую сборку, Android Studio подключает ваше приложение к позволяют мгновенно запускать код и обновления ресурсов. Хотя обновление запущенное приложение происходит гораздо быстрее, может потребоваться первая сборка дольше. Вы можете улучшить процесс сборки, настроив несколько параметров DexOptions:

android {
  ...
  dexOptions {
    maxProcessCount 4 // this is the default value
    javaMaxHeapSize "2g"
  }
}

Также для предупреждения перед Android 4.1. он говорит:

Мгновенный запуск поддерживается только при развертывании варианта сборки отладки, используйте Android Plugin для Gradle версии 2.0.0 или выше, и установите minSdkVersion до 15 или выше в вашем модуле на уровне модуля build.gradle файл. Для лучшей производительности установите minSdkVersion на 21 или выше.

Видя это видео с Googler может помочь вам немного разобраться в Instant Run.

Ответ 3

Я столкнулся с той же проблемой, когда обновил Andoid gradle плагин 2.4 до 2.10, и я решил его, используя следующую команду

Перейдите в Android-студию File- > Settings → Build, Execution, Deployment → Instant Run и снимите флажок CheckBox

Ответ 4

Я встретил ту же проблему, используйте низкую версию gradle.

build.gradle: classpath 'com.android.tools.build: gradle:1.3.0'

gradle -wrapper.properties: distributionUrl = HTTPS://services.gradle.org/distributions/ gradle -2.4-all.zip

Ответ 5

нет необходимости отключать мгновенный запуск, но следуйте моему шагу, используйте gradle плагин v2.3.2 и используйте gradle v3.5, чтобы решить его, наслаждайтесь, в любом случае я решаю проблему в моем проекте.