该应用程序在首次安装时需要很长时间才能运行。似乎“悬”起来了。
这是当时屏幕的状态:
然后几秒钟(10 或 15)后,它会正确启动。
当应用程序挂起时logcat
,将显示以下行:
05-23 21:37:13.604 27661-27661/com.kirolm.kmibilbideaklezo W/System: ClassLoader referenced unknown path: /data/app/com.kirolm.kmibilbideaklezo-1/lib/arm
然后这是logcat
完整的:标签,LogApp
它们DatabaseHelper
是我的,用于监控应用程序的情况。
05-23 21:37:28.835 27661-27661/com.kirolm.kmibilbideaklezo W/System: ClassLoader referenced unknown path: /data/app/com.kirolm.kmibilbideaklezo-1/lib/arm
05-23 21:37:28.939 27661-27661/com.kirolm.kmibilbideaklezo I/GMPM: App measurement is starting up, version: 8487
05-23 21:37:28.939 27661-27661/com.kirolm.kmibilbideaklezo I/GMPM: To enable debug logging run: adb shell setprop log.tag.GMPM VERBOSE
05-23 21:37:29.248 27661-27661/com.kirolm.kmibilbideaklezo 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
05-23 21:37:29.522 27661-27661/com.kirolm.kmibilbideaklezo I/LogApp: Main.java: Entrando en el onCreate de la app!
05-23 21:37:29.555 27661-27661/com.kirolm.kmibilbideaklezo I/DatabaseHelper: LoadDb.Async.java: Entra en PreExecute
05-23 21:37:29.600 27661-28432/com.kirolm.kmibilbideaklezo I/DatabaseHelper: LoadDb.Async.java: Entra en doInBackground
05-23 21:37:29.605 27661-28433/com.kirolm.kmibilbideaklezo D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
05-23 21:37:29.625 27661-27661/com.kirolm.kmibilbideaklezo I/DatabaseHelper: LoadDb.Async.java: Entra en onProgressUpdate
05-23 21:37:29.647 27661-28432/com.kirolm.kmibilbideaklezo I/LogApp: DatabaseHelper. createDataBase. BD cargada.
05-23 21:37:29.684 27661-28433/com.kirolm.kmibilbideaklezo I/Adreno-EGL: <qeglDrvAPI_eglInitialize:379>: QUALCOMM Build: 10/21/15, 369a2ea, I96aee987eb
05-23 21:37:29.689 27661-28433/com.kirolm.kmibilbideaklezo I/OpenGLRenderer: Initialized EGL, version 1.4
问题出在
Instant Run
Android Studio 提供的选项上。如果该应用程序被禁用,它可以完美运行,所以我推断一旦上传到 Google Play 就不会出现问题。要禁用
Instant Run
:Android Studio -> Preferences -> Build, Execution, Deployment -> Instant Run 并取消选中
Enable Instant Run to hot swap code/resource changes on deploy (default enabled)
。我在这里找到了答案:https://stackoverflow.com/questions/36623917/first-launch-take-long-time-in-android-studio-2-0-gradle-2-0
无论如何,知道它是由 Android Studio IDE 引起的,您可以继续
Instant Run
启用该选项,因为一旦它在 Google Play 上发布,应用程序将快速运行。