在SplashActivity
我使用了retrofit
和eventbus
。
我必须等待启动改装请求或者至少 40秒
启动APP
。
之前只是显示白页。
每一秒我得到两个这样的Log系列:
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)
我该怎么办?
感谢。
答案 0 :(得分:1)
禁用即时运行,并在文件中禁用即时运行中的部署 - >设置
答案 1 :(得分:0)
尤其是Mismatch between dex2oat instruction set features
警告-可能会引起延迟,这可能是由于正在运行的仿真器已配置为以ABI运行(例如x86,x86_64),其本地库在关联的APK中不可用。
例如,仿真器可能正在运行x86_64
CPU / ABI,而APK仅包含x86
和(也许)armeabi-v7a
的本地库。
使用Android Studio可以轻松检查模拟器的ABI:
(此处的仿真器为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'
}
}
}
您可以在include
部分下控制APK的内容。但请注意,如果不拆分APK,其总体大小会增加。
如果您具有更复杂的APK拆分配置,您仍然可以获得此结果,但最好先参考official documentation。