Почему приложение запускается с 40 секундной задержкой?

В моем SplashActivity я использовал retrofit а также eventbus,

Я должен ждать начала запроса на модернизацию или, возможно, начать APP не менее 40 секунд.

до этого просто показывает белую страницу.

в каждую секунду я получаю две серии журналов:

01-04 09:36:08.104 5217-5217/? W/dex2oat: Unexpected CPU variant for X86 using defaults: x86
01-04 09:36:08.104 5217-5217/? W/dex2oat: Mismatch between dex2oat instruction set features (ISA: X86 Feature string: smp,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt) and those of dex2oat executable (ISA: X86 Feature string: smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt) for the command line:
01-04 09:36:08.104 5217-5217/? W/dex2oat: /system/bin/dex2oat --runtime-arg -classpath --runtime-arg & --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/data/com.idek_2.titrefarsi/files/instant-run/dex/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --oat-fd=35 --oat-location=/data/user/0/com.idek_2.titrefarsi/cache/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --compiler-filter=speed
01-04 09:36:08.106 5217-5217/? I/dex2oat: /system/bin/dex2oat --debuggable --dex-file=/data/data/com.idek_2.titrefarsi/files/instant-run/dex/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --oat-fd=35 --oat-location=/data/user/0/com.idek_2.titrefarsi/cache/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --compiler-filter=speed
01-04 09:36:08.618 5217-5217/? I/dex2oat: dex2oat took 514.000ms (threads: 2) arena alloc=259KB (266112B) java alloc=86KB (88464B) native alloc=830KB (850408B) free=1729KB (1771032B)

что я должен делать?

Благодарю.

1 ответ

Решение

Отключить мгновенный запуск, а также отключить развертывание при мгновенном запуске из Файл -> Настройки

В частности, Mismatch between dex2oat instruction set featuresпредупреждение - которое может вызывать задержку, может быть результатом того факта, что работающий эмулятор был настроен для работы с ABI (например, x86, x86_64), для которого собственные библиотеки недоступны внутри связанного APK.

Например, возможно, что эмулятор запускает один x86_64 CPU/ABI и что APK включает только собственные библиотеки для x86 и возможно) armeabi-v7a.

Проверить ABI эмулятора легко с помощью Android Studio:

(здесь эмулятор x86).

Проверить, какие варианты нативных библиотек включены, также легко с помощью Android Studio. Откройте файл APK, дважды нажав на него в дереве файлов проекта, или перетащите его снаружи. Затем разверните часть дерева содержимого lib:

(Здесь вы видите, что были включены все распространенные ABI, а именно x86_64, x86 а также armeabi-v7a).

Итак, чтобы попытаться решить эту проблему (у меня это сработало), вы можете попробовать либо воссоздать правильный AVD, либо пересмотреть свое приложение. splitsконфигурация. Это типичная конфигурация для стандартного одноадресного APK:

android {
    // ...

    splits {
        abi {
            reset()
            enable false
            universalApk false
            include 'armeabi-v7a', 'x86', 'x86_64'
        }
    }
}

Вы можете контролировать содержание APK в этом отношении в includeчасть. Однако имейте в виду, что без разделения APK его общий размер увеличивается.

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

Другие вопросы по тегам