「Androidアプリの開発中は問題無いが、Play Storeからインストールすると初回起動時のみ異常終了する件」の解決編です。
Crashes the first time the app starts. When installing from PlayStore.
前提条件
- Gradle 5.1.1
- Android Gradle plugin 3.4.0
- minSdkVersion16
- targetSdkVersion28
- compileSdkVersion28
- minifyEnabled true
- proguard
- AndroidX
- 'com.google.android.gms:play-services-ads:18.0.0'
- 'com.google.android.ads.consent:consent-library:1.0.7'
Launcher Activityの主な起動処理
- onCreate:setContentView、GDPR関係
- onResume:SoundPool#load()
実行結果
Build | Install | 起動結果 |
---|---|---|
Debug | adb Emulator | OK |
Debug | adb 実機 | OK |
Release | 手動 実機 | OK |
Release | Play Store | FAILE 初回起動時のみ必ず異常終了 |
Crash Log
Log関数を残したRelease BuildをPlay Storeへ公開し、それを手持ちの端末にインストール。USB接続し、Android StudioのLogcatにより取得。
--------- beginning of system 2019-06-22 14:00:45.923 1316-1998/? I/ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=your.pack.name/.MainActivity (has extras)} from uid ????? on display 0 2019-06-22 14:00:45.935 2593-2699/? D/LauncherLog: Launcher:: startActivity: pkg: your.pack.name clz: your.pack.name.MainActivity user: null 2019-06-22 14:00:45.949 1316-1998/? D/ActivityTrigger: ActivityTrigger activityPauseTrigger 2019-06-22 14:00:45.952 2593-2593/? V/ActivityCategoryHelper: takes: 0 2019-06-22 14:00:45.953 2593-2593/? D/LauncherLog: Launcher onPause Begin 2019-06-22 14:00:45.953 2593-2593/? D/LauncherLog: Launcher onPause End 2019-06-22 14:00:45.955 1316-1753/? D/ActivityManager: [MemInfo] Process does not exist before starting ActivityRecord{1e99f57 u0 your.pack.name/.MainActivity t74}. System free memory=1324728320 2019-06-22 14:00:45.969 1316-1753/? I/ActivityManager: Start proc 31664:your.pack.name/u0a282 for activity your.pack.name/.MainActivity duration: 14 2019-06-22 14:00:45.969 1316-1753/? V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@6a06dba 2019-06-22 14:00:45.979 1316-1753/? D/ActivityManager: [MemInfo] Process does not exist before starting ActivityRecord{1e99f57 u0 your.pack.name/.MainActivity t74}. System free memory=1323753472 2019-06-22 14:00:45.980 2593-2593/? V/Launcher: [onWindowFocusChanged]: false, takes: 0ms 2019-06-22 14:00:45.986 1316-2572/? D/WindowManager: adjustConfigurationLw, config:{0 1.0 440mcc10mnc [ja_JP,en_US] ldltr sw360dp w360dp h616dp 320dpi nrml long port finger -keyb/v/h -nav/v s.21} mLidState:-1 mHasDockFeature:false mHasKeyboardFeature:false mHasHallSensorFeature:false config.hardKeyboardHidden:2 2019-06-22 14:00:46.022 31664-31664/? W/System: ClassLoader referenced unknown path: /data/app/your.pack.name-1/lib/arm64 2019-06-22 14:00:46.045 31664-31664/? V/Monotype: SetAppTypeFace- try to flip, app = your.pack.name 2019-06-22 14:00:46.049 31664-31664/? V/Monotype: Typeface getFontPathFlipFont - systemFont = default#default 2019-06-22 14:00:46.070 31664-31664/? W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter androidx.vectordrawable.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 2019-06-22 14:00:46.072 31664-31664/? V/Monotype: SetAppTypeFace- try to flip, app = your.pack.name 2019-06-22 14:00:46.072 31664-31664/? V/Monotype: Typeface getFontPathFlipFont - systemFont = default#default 2019-06-22 14:00:46.090 1316-1679/? I/qti_sensors_hal: LIGHT processReportInd: 1b5f70 27.372803 2019-06-22 14:00:46.098 31664-31664/? I/art: Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener; 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2203) 2019-06-22 14:00:46.098 31664-31664/? I/art: at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:637) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void your.pack.name.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:267) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6759) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1119) 2019-06-22 14:00:46.098 31664-31664/? I/art: at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2618) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2726) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1477) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.os.Looper.loop() (Looper.java:159) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6139) 2019-06-22 14:00:46.098 31664-31664/? I/art: at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:886) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:776) 2019-06-22 14:00:46.098 31664-31664/? I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],nativeLibraryDirectories=[/data/app/your.pack.name-1/lib/arm64, /system/lib64, /vendor/lib64]] 2019-06-22 14:00:46.098 31664-31664/? I/art: at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56) 2019-06-22 14:00:46.098 31664-31664/? I/art: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380) 2019-06-22 14:00:46.098 31664-31664/? I/art: at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.core.view.ViewCompat.setOnApplyWindowInsetsListener(android.view.View, androidx.core.view.OnApplyWindowInsetsListener) (ViewCompat.java:2203) 2019-06-22 14:00:46.098 31664-31664/? I/art: at android.view.ViewGroup androidx.appcompat.app.AppCompatDelegateImpl.createSubDecor() (AppCompatDelegateImpl.java:637) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.ensureSubDecor() (AppCompatDelegateImpl.java:518) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.appcompat.app.AppCompatDelegateImpl.setContentView(int) (AppCompatDelegateImpl.java:466) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void androidx.appcompat.app.AppCompatActivity.setContentView(int) (AppCompatActivity.java:140) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void your.pack.name.MainActivity.onCreate(android.os.Bundle) (MainActivity.java:267) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.Activity.performCreate(android.os.Bundle) (Activity.java:6759) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.Instrumentation.callActivityOnCreate(android.app.Activity, android.os.Bundle) (Instrumentation.java:1119) 2019-06-22 14:00:46.098 31664-31664/? I/art: at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2618) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2726) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1477) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.os.Looper.loop() (Looper.java:159) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6139) 2019-06-22 14:00:46.098 31664-31664/? I/art: at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:886) 2019-06-22 14:00:46.098 31664-31664/? I/art: at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:776) 2019-06-22 14:00:46.114 31664-31678/? D/ApplicationLoaders: ignored Vulkan layer search path /data/app/com.google.android.gms-1/lib/arm64:/data/app/com.google.android.gms-1/base.apk!/lib/arm64-v8a for namespace 0x7f781b80f0 2019-06-22 14:00:46.145 31664-31680/? W/DynamiteModule: Local module descriptor class for com.google.android.gms.measurement.dynamite not found. 2019-06-22 14:00:46.151 31664-31678/? I/DynamiteModule: Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:20290 2019-06-22 14:00:46.151 31664-31678/? I/DynamiteModule: Selected remote version of com.google.android.gms.ads.dynamite, version >= 20290 2019-06-22 14:00:46.152 31664-31678/? V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils 2019-06-22 14:00:46.156 31664-31680/? I/DynamiteModule: Considering local module com.google.android.gms.measurement.dynamite:0 and remote module com.google.android.gms.measurement.dynamite:7 2019-06-22 14:00:46.156 31664-31680/? I/DynamiteModule: Selected remote version of com.google.android.gms.measurement.dynamite, version >= 7 2019-06-22 14:00:46.156 31664-31680/? V/DynamiteModule: Dynamite loader version >= 2, using loadModule2NoCrashUtils 2019-06-22 14:00:46.161 31664-31680/? W/System: ClassLoader referenced unknown path: 2019-06-22 14:00:46.163 31664-31680/? D/ApplicationLoaders: ignored Vulkan layer search path /data/app/com.google.android.gms-1/lib/arm64:/data/app/com.google.android.gms-1/base.apk!/lib/arm64-v8a for namespace 0x7f781b8160 2019-06-22 14:00:46.172 31664-31678/? W/ChimeraDebugLogger: Singleton logger instance not set. 2019-06-22 14:00:46.181 31664-31678/? W/System: ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000079/n/arm64-v8a 2019-06-22 14:00:46.196 31664-31680/? W/ChimeraDebugLogger: Singleton logger instance not set. 2019-06-22 14:00:46.208 31664-31680/? W/System: ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000076/n/arm64-v8a 2019-06-22 14:00:46.224 31664-31680/? W/DynamiteModule: Local module descriptor class for com.google.android.gms.measurement.dynamite not found. 2019-06-22 14:00:46.287 21209-21209/? I/Finsky: [1] com.google.android.finsky.packagemanager.impl.PackageMonitorReceiverImpl.a(4): PackageMonitor received: android.intent.action.PACKAGE_FIRST_LAUNCH 2019-06-22 14:00:46.290 21209-21209/? I/Finsky: [1] itj.c(1): Package first launch for your.pack.name 2019-06-22 14:00:46.291 21209-21209/? I/ActivityThread: Performing receive of Intent { act=android.intent.action.PACKAGE_FIRST_LAUNCH dat=package:your.pack.name flg=0x4000010 pkg=com.android.vending cmp=com.android.vending/com.google.android.finsky.packagemanager.impl.PackageMonitorReceiverImpl$RegisteredReceiver (has extras) }: app=com.google.android.finsky.application.classic.ClassicApplication@5faf9dc, appName=com.android.vending, pkg=com.android.vending, comp={com.android.vending/com.google.android.finsky.packagemanager.impl.PackageMonitorReceiverImpl$RegisteredReceiver}, dir=/data/app/com.android.vending-2/base.apk, duration=305 2019-06-22 14:00:46.293 21209-21209/? I/Finsky: [1] nlv.b(2): Frosting ID looked up on UI thread. Caller should move to a background thread. 2019-06-22 14:00:46.299 21209-21209/? I/Finsky: [1] isp.run(34): Backfilling empty external referrer for your.pack.name 2019-06-22 14:00:46.299 1316-1679/? I/qti_sensors_hal: LIGHT processReportInd: 1b5f70 27.372803 2019-06-22 14:00:46.301 21209-21209/? I/Finsky: [1] isp.run(12): Delivered referrer for your.pack.name 2019-06-22 14:00:46.303 31664-31684/? I/Ads: App measurement is starting up, version: 16250 2019-06-22 14:00:46.303 31664-31684/? I/Ads: To enable debug logging run: adb shell setprop log.tag.FA VERBOSE 2019-06-22 14:00:46.329 31664-31664/? D/MainActivity: onCreate() 2019-06-22 14:00:46.339 31664-31664/? I/ConsentInformation: Use ConsentInformation.getInstance(context).addTestDevice("-------secret-------") to get test ads on this device. 2019-06-22 14:00:46.344 31664-31664/? D/MainActivity: onResume() 2019-06-22 14:00:46.345 31664-31664/? D/MainActivity: onResume end 2019-06-22 14:00:46.346 31664-31686/? I/DpmTcmClient: RegisterTcmMonitor from: com.android.okhttp.TcmIdleTimerMonitor 2019-06-22 14:00:46.362 31664-31664/? D/AndroidRuntime: Shutting down VM --------- beginning of crash 2019-06-22 14:00:46.363 31664-31664/? E/AndroidRuntime: FATAL EXCEPTION: main Process: your.pack.name, PID: 31664 java.lang.RuntimeException: Unable to instantiate receiver com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],nativeLibraryDirectories=[/data/app/your.pack.name-1/lib/arm64, /system/lib64, /vendor/lib64]] at android.app.ActivityThread.handleReceiver(ActivityThread.java:3021) at android.app.ActivityThread.-wrap18(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1561) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:159) at android.app.ActivityThread.main(ActivityThread.java:6139) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" on path: DexPathList[[zip file "/data/app/your.pack.name-1/base.apk"],nativeLibraryDirectories=[/data/app/your.pack.name-1/lib/arm64, /system/lib64, /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.ActivityThread.handleReceiver(ActivityThread.java:3016) at android.app.ActivityThread.-wrap18(ActivityThread.java)? at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1561)? at android.os.Handler.dispatchMessage(Handler.java:102)? at android.os.Looper.loop(Looper.java:159)? at android.app.ActivityThread.main(ActivityThread.java:6139)? at java.lang.reflect.Method.invoke(Native Method)? at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)? at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)? 2019-06-22 14:00:46.365 1316-1998/? W/ActivityManager: Force finishing activity your.pack.name/.MainActivity 2019-06-22 14:00:46.368 1316-1998/? D/ActivityTrigger: ActivityTrigger activityPauseTrigger 2019-06-22 14:00:46.378 1316-1453/? V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@9f99537 2019-06-22 14:00:46.379 1316-1453/? V/BoostFramework: BoostFramework() : mPerf = com.qualcomm.qti.Performance@a457aa4 2019-06-22 14:00:46.383 2216-2250/? D/OpenedTimeAppInfoProvider: Update DB : number of affected records : 1 2019-06-22 14:00:46.383 2216-2216/? D/TaskWatcherService: pkgName: com.asus.launcher taskId: 25 2019-06-22 14:00:46.383 2216-2216/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.startService:1357 android.content.ContextWrapper.startService:620 com.asus.powersaver.TaskWatcherService$IncomingHandler.handleMessage:-1 android.os.Handler.dispatchMessage:102 android.os.Looper.loop:159 2019-06-22 14:00:46.387 2216-2216/? W/ContextImpl: Calling a method in the system process without a qualified user: android.app.ContextImpl.sendBroadcast:877 android.content.ContextWrapper.sendBroadcast:428 com.asus.powersaver.TaskWatcherService$IncomingHandler.handleMessage:-1 android.os.Handler.dispatchMessage:102 android.os.Looper.loop:159 2019-06-22 14:00:46.391 2216-2216/? D/PowerSaverService: onStartCommand PowerSaverService 2019-06-22 14:00:46.394 2216-2216/? D/PowerSaverService: current package:com.asus.launcher;activity:com.android.launcher3.Launcher 2019-06-22 14:00:46.394 2216-2216/? D/PowerSaverUtils: isLimitedCpuFrequency prop : 0 ; result : false 2019-06-22 14:00:46.397 2216-2250/? I/AppOpsStatusUpdateHandler: pkgName = com.asus.launcher 2019-06-22 14:00:46.397 2216-2250/? I/AppOpsStatusUpdateHandler: taskId = 25 2019-06-22 14:00:46.397 2216-2250/? D/CNAppLockHandler: CNAppLockHandler handleAppFocus 2019-06-22 14:00:46.428 1316-14389/? I/OpenGLRenderer: Initialized EGL, version 1.4 2019-06-22 14:00:46.429 1316-14389/? D/OpenGLRenderer: Swap behavior 1 2019-06-22 14:00:46.441 1316-2741/? D/PowerManagerService: releaseWakeLockInternal: lock=172504635 [CMWakeLock], flags=0x0, total_time=3ms 2019-06-22 14:00:46.508 1316-1679/? I/qti_sensors_hal: LIGHT processReportInd: 1b5f70 27.372803 2019-06-22 14:00:46.713 31664-31698/? E/WVMExtractor: Failed to open libwvm.so: dlopen failed: library "libwvm.so" not found 2019-06-22 14:00:46.715 714-714/? W/ServiceManager: Permission failure: com.oma.drm.permission.ACCESS_OMA_DRM from uid=????? pid=31664 2019-06-22 14:00:46.716 1316-1679/? I/qti_sensors_hal: LIGHT processReportInd: 1b5f70 27.372803 2019-06-22 14:00:46.718 714-714/? W/ServiceManager: Permission failure: com.oma.drm.permission.ACCESS_OMA_DRM from uid=????? pid=31664 2019-06-22 14:00:46.719 714-714/? W/ServiceManager: Permission failure: com.oma.drm.permission.ACCESS_OMA_DRM from uid=????? pid=31664 2019-06-22 14:00:46.720 720-916/? I/ExtendedExtractor: QTIParser is prefered .. flags 0 2019-06-22 14:00:46.720 720-916/? E/QCExtractor: ExtendedExtractor failed to instantiate extractor 2019-06-22 14:00:46.720 720-916/? I/ExtendedExtractor: ExtendedExtractor::create 0x0 2019-06-22 14:00:46.723 721-1894/? I/MediaPlayerService: MediaPlayerService::getOMX 2019-06-22 14:00:46.724 31664-31699/? I/OMXClient: MuxOMX ctor 2019-06-22 14:00:46.725 717-13292/? I/OMXMaster: makeComponentInstance(OMX.google.mp3.decoder) in mediacodec process 2019-06-22 14:00:46.794 714-714/? W/ServiceManager: Permission failure: com.oma.drm.permission.ACCESS_OMA_DRM from uid=????? pid=31664 2019-06-22 14:00:46.798 714-714/? W/ServiceManager: Permission failure: com.oma.drm.permission.ACCESS_OMA_DRM from uid=????? pid=31664 2019-06-22 14:00:46.799 714-714/? W/ServiceManager: Permission failure: com.oma.drm.permission.ACCESS_OMA_DRM from uid=????? pid=31664 2019-06-22 14:00:46.799 720-720/? I/ExtendedExtractor: QTIParser is prefered .. flags 0 2019-06-22 14:00:46.800 720-720/? E/QCExtractor: ExtendedExtractor failed to instantiate extractor 2019-06-22 14:00:46.800 720-720/? I/ExtendedExtractor: ExtendedExtractor::create 0x0 2019-06-22 14:00:46.802 721-6855/? I/MediaPlayerService: MediaPlayerService::getOMX 2019-06-22 14:00:46.803 31664-31703/? I/OMXClient: MuxOMX ctor 2019-06-22 14:00:46.804 717-917/? I/OMXMaster: makeComponentInstance(OMX.google.mp3.decoder) in mediacodec process 2019-06-22 14:00:46.815 2128-2139/? D/PhoneInterfaceManager: isVolteAvailable: sub Id : 1 2019-06-22 14:00:46.816 1859-2261/? V/ReflectionMethods: ========ReflectionMethods.getVolteAvailable = false =============== 2019-06-22 14:00:46.818 2128-2951/? D/PhoneInterfaceManager: isVideoTelephonyAvailable: sub Id : 1 2019-06-22 14:00:46.819 1859-2261/? V/ReflectionMethods: ========ReflectionMethods.getVideoTelephonyAvailable = false =============== 2019-06-22 14:00:46.870 1316-1452/? W/ActivityManager: Activity pause timeout for ActivityRecord{1e99f57 u0 your.pack.name/.MainActivity t74 f}
バカみたいに長いログ吐きやがって。こんなん読めるか!
やったこと
Activity pause timeout for ActivityRecord
処理が重すぎて(500ms)システムによる強制Killが起きたことを示すログなので、SoundPoolの初期処理で落ちていると考え、AsyncTaskによる非同期にしたが解決せず。実際onCreateからonResume endまで16msで完了している。
多数のLibrary、および、20Kの巨大なstatic final Stringの使用
関数やインスタンスの大きさの制限があるのでは疑い、Androidの「64K を超えるメソッドを使用するアプリの設定」が関係していると考え、multidexを使用したが解決せず。
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver"
minify及びproguardにより必要なメソッドが削除されたと考え、disableにしたが解決せず。
天啓を得る
android - Play-services-ads 18.0.0 get crash - Stack Overflow
6/21に投稿されたばかりである。AdMob 18.0.0が原因でクラッシュ?
自作アプリのバグの発生日は2019/6/20で、AdMob 18.0.0は6/17にリリースされたものでる。
よく調べてみると、より古いバージョンである17や15でもクラッシュしたという記事を見つけた。
その時々の新しいGoogle Play開発者サービスを使用すると落ちると考え、ひとつ前の17.2.1でPlay Storeへリリースすると見事に不具合は解消された。
実機にはGoogle Play servicesの最新のものが適用されていたのが腑に落ちないが、ベータプログラムに参加するとより新しいビルドも提供されていたため、リリースが段階公開されていることによって手持ちの全端末は開発者サービスのバージョンが足りていなかったと考えられる。
初回起動時のみ落ちる理由は定かではないが、ストアからインストールした場合にAdMobの内部で初回のみ行う処理があるとしておこう。
教訓~Lesson~
いかなる時も最新のGoogle Play開発者サービスを利用してはいけない
~Don't Use The GooglePlay-services Latest Version In All Time~