Первый запуск занимает много времени (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, чтобы решить его, наслаждайтесь, в любом случае я решаю проблему в моем проекте.