RuntimeException: Unable to pause activity: Service not registered

1,515 views
Skip to first unread message

Marco Batista

unread,
Nov 3, 2016, 6:59:25 AM11/3/16
to Google Mobile Ads SDK Developers
Hello,

I recently updated my ads from com.google.android.gms:play-services-ads to com.google.firebase:firebase-ads and after this update I started getting a lot of these "Service not registered" crashes.
They have different Stack traces, but all of them point to com.google.android.gms.ads.AdActivity. Some seems to be while trying to pause the activity, others while "performPauseActivityIfNeeded" and while trying to destroy the activity.

Is there any known issues with the firebase-ads?

I have a game, when the user loses an ad shows up. Here is the flow:
1. Before the level starts, the app starts loading an ad.
2. When the user loses, the app checks if there is an ad available.
3. If there is, then the app shows the ad.
4. When the user closes the ad (onAdClosed()), the activity is finished and the app loads another Activity.

Is this procedure wrong? Should I wait, for example, 100 ms before finishing the activity and loading the next one?

Here are some of the Stack traces:


Fatal Exception: java.lang.RuntimeException: Unable to pause activity {pt.wm.milhes/com.google.android.gms.ads.AdActivity}: java.lang.IllegalArgumentException: Service not registered: amg@439df4c0
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3338)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3293)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3271)
       at android.app.ActivityThread.access$1000(ActivityThread.java:166)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5584)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
       at dalvik.system.NativeStart.main(NativeStart.java)
Caused by java.lang.IllegalArgumentException: Service not registered: amg@439df4c0
       at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:922)
       at android.app.ContextImpl.unbindService(ContextImpl.java:1840)
       at android.content.ContextWrapper.unbindService(ContextWrapper.java:548)
       at com.google.android.gms.ads.internal.customtabs.a.a(:com.google.android.gms.DynamiteModulesA:68)
       at com.google.android.gms.ads.internal.mediation.customtabs.c.s(:com.google.android.gms.DynamiteModulesA:121)
       at com.google.android.gms.ads.internal.overlay.l.m(:com.google.android.gms.DynamiteModulesA:805)
       at com.google.android.gms.ads.internal.overlay.l.o(:com.google.android.gms.DynamiteModulesA:772)
       at com.google.android.gms.ads.internal.overlay.l.f(:com.google.android.gms.DynamiteModulesA:456)
       at com.google.android.gms.ads.internal.overlay.client.c.onTransact(:com.google.android.gms.DynamiteModulesA:86)
       at android.os.Binder.transact(Binder.java:361)
       at com.google.android.gms.internal.zzhy$zza$zza.onPause(Unknown Source)
       at com.google.android.gms.ads.AdActivity.onPause(Unknown Source)
       at android.app.Activity.performPause(Activity.java:5551)
       at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1240)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3324)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3293)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3271)
       at android.app.ActivityThread.access$1000(ActivityThread.java:166)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1300)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:136)
       at android.app.ActivityThread.main(ActivityThread.java:5584)
       at java.lang.reflect.Method.invokeNative(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:515)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084)
       at dalvik.system.NativeStart.main(NativeStart.java)




Fatal Exception: java.lang.RuntimeException: Unable to pause activity {pt.wm.milhes/com.google.android.gms.ads.AdActivity}: java.lang.IllegalArgumentException: Service not registered: aqd@2449edb
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4591)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4550)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:4525)
       at android.app.ActivityThread.access$1300(ActivityThread.java:222)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
Caused by java.lang.IllegalArgumentException: Service not registered: aqd@2449edb
       at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1156)
       at android.app.ContextImpl.unbindService(ContextImpl.java:1452)
       at android.content.ContextWrapper.unbindService(ContextWrapper.java:644)
       at com.google.android.gms.ads.internal.customtabs.a.a(:com.google.android.gms.DynamiteModulesA:68)
       at com.google.android.gms.ads.internal.mediation.customtabs.c.s(:com.google.android.gms.DynamiteModulesA:121)
       at com.google.android.gms.ads.internal.overlay.l.m(:com.google.android.gms.DynamiteModulesA:805)
       at com.google.android.gms.ads.internal.overlay.l.o(:com.google.android.gms.DynamiteModulesA:772)
       at com.google.android.gms.ads.internal.overlay.l.f(:com.google.android.gms.DynamiteModulesA:456)
       at com.google.android.gms.ads.internal.overlay.client.c.onTransact(:com.google.android.gms.DynamiteModulesA:86)
       at android.os.Binder.transact(Binder.java:387)
       at com.google.android.gms.internal.zzhy$zza$zza.onPause(Unknown Source)
       at com.google.android.gms.ads.AdActivity.onPause(Unknown Source)
       at android.app.Activity.performPause(Activity.java:7033)
       at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1339)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4577)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:4550)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:4525)
       at android.app.ActivityThread.access$1300(ActivityThread.java:222)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1813)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:158)
       at android.app.ActivityThread.main(ActivityThread.java:7229)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)





Fatal Exception: java.lang.RuntimeException: Unable to pause activity {pt.wm.milhes/com.google.android.gms.ads.AdActivity}: java.lang.IllegalArgumentException: Service not registered: aqd@3048a13
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3430)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3389)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3364)
       at android.app.ActivityThread.access$1100(ActivityThread.java:168)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:150)
       at android.app.ActivityThread.main(ActivityThread.java:5639)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)
Caused by java.lang.IllegalArgumentException: Service not registered: aqd@3048a13
       at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1151)
       at android.app.ContextImpl.unbindService(ContextImpl.java:1497)
       at android.content.ContextWrapper.unbindService(ContextWrapper.java:616)
       at com.google.android.gms.ads.internal.customtabs.a.a(:com.google.android.gms.DynamiteModulesA:68)
       at com.google.android.gms.ads.internal.mediation.customtabs.c.s(:com.google.android.gms.DynamiteModulesA:121)
       at com.google.android.gms.ads.internal.overlay.l.m(:com.google.android.gms.DynamiteModulesA:805)
       at com.google.android.gms.ads.internal.overlay.l.o(:com.google.android.gms.DynamiteModulesA:772)
       at com.google.android.gms.ads.internal.overlay.l.f(:com.google.android.gms.DynamiteModulesA:456)
       at com.google.android.gms.ads.internal.overlay.client.c.onTransact(:com.google.android.gms.DynamiteModulesA:86)
       at android.os.Binder.transact(Binder.java:387)
       at com.google.android.gms.internal.zzhy$zza$zza.onPause(Unknown Source)
       at com.google.android.gms.ads.AdActivity.onPause(Unknown Source)
       at android.app.Activity.performPause(Activity.java:6500)
       at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1322)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3416)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3389)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3364)
       at android.app.ActivityThread.access$1100(ActivityThread.java:168)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1396)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:150)
       at android.app.ActivityThread.main(ActivityThread.java:5639)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:799)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:689)


Fatal Exception: java.lang.RuntimeException: Unable to pause activity {pt.wm.milhes/com.google.android.gms.ads.AdActivity}: java.lang.IllegalArgumentException: Service not registered: aqd@32006ce5
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3274)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3233)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3208)
       at android.app.ActivityThread.access$1000(ActivityThread.java:151)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1328)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:135)
       at android.app.ActivityThread.main(ActivityThread.java:5268)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
Caused by java.lang.IllegalArgumentException: Service not registered: aqd@32006ce5
       at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1029)
       at android.app.ContextImpl.unbindService(ContextImpl.java:1860)
       at android.content.ContextWrapper.unbindService(ContextWrapper.java:551)
       at com.google.android.gms.ads.internal.customtabs.a.a(:com.google.android.gms.DynamiteModulesA:68)
       at com.google.android.gms.ads.internal.mediation.customtabs.c.s(:com.google.android.gms.DynamiteModulesA:121)
       at com.google.android.gms.ads.internal.overlay.l.m(:com.google.android.gms.DynamiteModulesA:805)
       at com.google.android.gms.ads.internal.overlay.l.o(:com.google.android.gms.DynamiteModulesA:772)
       at com.google.android.gms.ads.internal.overlay.l.f(:com.google.android.gms.DynamiteModulesA:456)
       at com.google.android.gms.ads.internal.overlay.client.c.onTransact(:com.google.android.gms.DynamiteModulesA:86)
       at android.os.Binder.transact(Binder.java:380)
       at com.google.android.gms.internal.zzhy$zza$zza.onPause(Unknown Source)
       at com.google.android.gms.ads.AdActivity.onPause(Unknown Source)
       at android.app.Activity.performPause(Activity.java:6144)
       at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1310)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3260)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3233)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3208)
       at android.app.ActivityThread.access$1000(ActivityThread.java:151)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1328)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:135)
       at android.app.ActivityThread.main(ActivityThread.java:5268)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)





Fatal Exception: java.lang.RuntimeException: Unable to destroy activity {pt.wm.milhes/com.google.android.gms.ads.AdActivity}: java.lang.IllegalArgumentException: Service not registered: aqd@1a8bbca1
       at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3812)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3830)
       at android.app.ActivityThread.access$1400(ActivityThread.java:156)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:211)
       at android.app.ActivityThread.main(ActivityThread.java:5371)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)
Caused by java.lang.IllegalArgumentException: Service not registered: aqd@1a8bbca1
       at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1035)
       at android.app.ContextImpl.unbindService(ContextImpl.java:1829)
       at android.content.ContextWrapper.unbindService(ContextWrapper.java:551)
       at com.google.android.gms.ads.internal.customtabs.a.a(:com.google.android.gms.DynamiteModulesA:68)
       at com.google.android.gms.ads.internal.mediation.customtabs.c.s(:com.google.android.gms.DynamiteModulesA:121)
       at com.google.android.gms.ads.internal.overlay.l.m(:com.google.android.gms.DynamiteModulesA:805)
       at com.google.android.gms.ads.internal.overlay.l.o(:com.google.android.gms.DynamiteModulesA:772)
       at com.google.android.gms.ads.internal.overlay.l.h(:com.google.android.gms.DynamiteModulesA:508)
       at com.google.android.gms.ads.internal.overlay.client.c.onTransact(:com.google.android.gms.DynamiteModulesA:121)
       at android.os.Binder.transact(Binder.java:380)
       at com.google.android.gms.internal.zzhi$zza$zza.onDestroy(Unknown Source)
       at com.google.android.gms.ads.AdActivity.onDestroy(Unknown Source)
       at android.app.Activity.performDestroy(Activity.java:6169)
       at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1141)
       at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3799)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3830)
       at android.app.ActivityThread.access$1400(ActivityThread.java:156)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:211)
       at android.app.ActivityThread.main(ActivityThread.java:5371)
       at java.lang.reflect.Method.invoke(Method.java)
       at java.lang.reflect.Method.invoke(Method.java:372)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:945)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:740)






Fatal Exception: java.lang.RuntimeException: Unable to destroy activity {pt.wm.milhes/com.google.android.gms.ads.AdActivity}: java.lang.IllegalArgumentException: Service not registered: aqd@94cb6cd
       at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4020)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4038)
       at android.app.ActivityThread.-wrap5(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1519)
       at android.os.Handler.dispatchMessage(Handler.java:111)
       at android.os.Looper.loop(Looper.java:207)
       at android.app.ActivityThread.main(ActivityThread.java:5683)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)
Caused by java.lang.IllegalArgumentException: Service not registered: aqd@94cb6cd
       at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1085)
       at android.app.ContextImpl.unbindService(ContextImpl.java:1363)
       at android.content.ContextWrapper.unbindService(ContextWrapper.java:616)
       at com.google.android.gms.ads.internal.customtabs.a.a(:com.google.android.gms.DynamiteModulesA:68)
       at com.google.android.gms.ads.internal.mediation.customtabs.c.s(:com.google.android.gms.DynamiteModulesA:121)
       at com.google.android.gms.ads.internal.overlay.l.m(:com.google.android.gms.DynamiteModulesA:805)
       at com.google.android.gms.ads.internal.overlay.l.o(:com.google.android.gms.DynamiteModulesA:772)
       at com.google.android.gms.ads.internal.overlay.l.h(:com.google.android.gms.DynamiteModulesA:508)
       at com.google.android.gms.ads.internal.overlay.client.c.onTransact(:com.google.android.gms.DynamiteModulesA:121)
       at android.os.Binder.transact(Binder.java:392)
       at com.google.android.gms.internal.zzhi$zza$zza.onDestroy(Unknown Source)
       at com.google.android.gms.ads.AdActivity.onDestroy(Unknown Source)
       at android.app.Activity.performDestroy(Activity.java:6440)
       at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1149)
       at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4007)
       at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4038)
       at android.app.ActivityThread.-wrap5(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1519)
       at android.os.Handler.dispatchMessage(Handler.java:111)
       at android.os.Looper.loop(Looper.java:207)
       at android.app.ActivityThread.main(ActivityThread.java:5683)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:888)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:749)





Fatal Exception: java.lang.RuntimeException: Unable to pause activity {pt.wm.milhes/com.google.android.gms.ads.AdActivity}: java.lang.IllegalArgumentException: Service not registered: aqd@8527bdf
       at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3722)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3688)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3662)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3636)
       at android.app.ActivityThread.-wrap16(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1481)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6077)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
Caused by java.lang.IllegalArgumentException: Service not registered: aqd@8527bdf
       at android.app.LoadedApk.forgetServiceDispatcher(LoadedApk.java:1289)
       at android.app.ContextImpl.unbindService(ContextImpl.java:1511)
       at android.content.ContextWrapper.unbindService(ContextWrapper.java:648)
       at com.google.android.gms.ads.internal.customtabs.a.a(:com.google.android.gms.DynamiteModulesA:68)
       at com.google.android.gms.ads.internal.mediation.customtabs.c.s(:com.google.android.gms.DynamiteModulesA:121)
       at com.google.android.gms.ads.internal.overlay.l.m(:com.google.android.gms.DynamiteModulesA:805)
       at com.google.android.gms.ads.internal.overlay.l.o(:com.google.android.gms.DynamiteModulesA:772)
       at com.google.android.gms.ads.internal.overlay.l.f(:com.google.android.gms.DynamiteModulesA:456)
       at com.google.android.gms.ads.internal.overlay.client.c.onTransact(:com.google.android.gms.DynamiteModulesA:86)
       at android.os.Binder.transact(Binder.java:499)
       at com.google.android.gms.internal.zzhi$zza$zza.onPause(Unknown Source)
       at com.google.android.gms.ads.AdActivity.onPause(Unknown Source)
       at android.app.Activity.performPause(Activity.java:6804)
       at android.app.Instrumentation.callActivityOnPause(Instrumentation.java:1322)
       at android.app.ActivityThread.performPauseActivityIfNeeded(ActivityThread.java:3711)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3688)
       at android.app.ActivityThread.performPauseActivity(ActivityThread.java:3662)
       at android.app.ActivityThread.handlePauseActivity(ActivityThread.java:3636)
       at android.app.ActivityThread.-wrap16(ActivityThread.java)
       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1481)
       at android.os.Handler.dispatchMessage(Handler.java:102)
       at android.os.Looper.loop(Looper.java:154)
       at android.app.ActivityThread.main(ActivityThread.java:6077)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)

Vu Chau (Mobile Ads SDK Team)

unread,
Nov 3, 2016, 11:18:55 AM11/3/16
to Google Mobile Ads SDK Developers
Hi Marco,

Which kind of ad are you showing? What if you destroy the AdView object in onAdClosed() before finishing your Activity?  

If you still see an issue, let me know if you could send over a minimal sample game that reproduces the crash.

Vu Chau
Mobile Ads SDK Team

Marco Batista

unread,
Nov 3, 2016, 12:03:55 PM11/3/16
to Google Mobile Ads SDK Developers
Hello Vu,

It's an interstitial ad, is there a way to destroy it?

I'm only seeing the crashes on Crashlytics, I can't reproduce it locally.

Best regards,
Marco Batista

Vu Chau (Mobile Ads SDK Team)

unread,
Nov 3, 2016, 1:15:37 PM11/3/16
to Google Mobile Ads SDK Developers
Hi Marco,

Thanks for clarifying on the ad type! Interstitial ads are their own activities, so once they are closed, their associated activities will also be gone, so there's no need to call the destroy code.
When the user closes the ad (onAdClosed()), the activity is finished and the app loads another Activity.
You could try implementing a null check on your InterstitialAd instance as a safe measure before you kill activities sand start a new one.  There is no issue with the firebase-ads.

Vu Chau
Mobile Ads SDK Team

Marco Batista

unread,
Nov 4, 2016, 5:04:36 AM11/4/16
to Google Mobile Ads SDK Developers
Hello Vu,

just to clarify, you mean something like this (not the actual code I'm going to use, this is just a quick example)?

public void onAdClosed()
{
while(_ad != null)
{
wait(100L);
}
 
    startActivity(
        new Intent(
this,
GameOverActivity.class
)
);
    finish();
}

basically, wait while the InterstitialAd object isn't null, as soon as it becomes null, finish the Activity and move on to the GameOver Activity.

Best regards,
Marco Batista

Marco Batista

unread,
Nov 4, 2016, 5:21:48 AM11/4/16
to Google Mobile Ads SDK Developers
I'm guessing that wasn't it, as I just tested and the object never becomes null.
Is there a way to check if the Ad activity is destroyed?

Best regards,
Marco Batista

Vu Chau (Mobile Ads SDK Team)

unread,
Nov 4, 2016, 10:28:29 AM11/4/16
to Google Mobile Ads SDK Developers
Hi Marco,

So there isn't an official way to destroy the interstitial ad view.  But I tried finishing the current activity and loading a new one from under onAdClosed(), and I didn't see any issue.  It shouldn't be crashing at that point.

Are you binding and unbinding any service at that time (supposing there is a service in your activity)? Is anything overriding your current activity's onDestroy()?

Vu Chau
Mobile Ads SDK Team

Reply all
Reply to author
Forward
0 new messages