Closed
Description
Describe the bug
In or project, the Bid requests are done in a Dispatchers.IO coroutine scope.
So, in this scope, we build InterstitialAdUnit or BannerAdUnit instance, and then call the fetchDemand method in order to call the backend with the new adUnit. It works fine until version 2.5.0: now it is impossible to start the requuest, because the BannerAdUnit requires a timer, and does not work in our coroutine scopes.
java.lang.RuntimeException: Can't create handler inside thread Thread[DefaultDispatcher-worker-9,5,main] that has not called Looper.prepare()
at android.os.Handler.<init>(Handler.java:228)
at android.os.Handler.<init>(Handler.java:130)
at android.os.CountDownTimer$1.<init>(CountDownTimer.java:129)
at android.os.CountDownTimer.<init>(CountDownTimer.java:129)
at org.prebid.mobile.VisibilityMonitor$VisibilityTimer.<init>(VisibilityMonitor.java:74)
at org.prebid.mobile.VisibilityMonitor.<init>(VisibilityMonitor.java:26)
at org.prebid.mobile.AdUnit.<init>(AdUnit.java:74)
at org.prebid.mobile.AdUnit.<init>(AdUnit.java:86)
at org.prebid.mobile.BannerBaseAdUnit.<init>(BannerBaseAdUnit.java:33)
at org.prebid.mobile.BannerAdUnit.<init>(BannerAdUnit.java:43)
at xxx.xxxx.xxxxx.xxxxx.PrebidHelper.getPrebidAdUnits$library_debug(PrebidHelper.kt:54)
It seems related to #804
To Reproduce
Steps to reproduce the behavior:
- Create an instance of BannerAdUnit in a Dispatchers.IO coroutine scope
Expected behavior
It is possible to create an instance of BannerAdUnit
Smartphone (please complete the following information):
- Device: Any Android
- Version : only on 2.5.0
Metadata
Metadata
Assignees
Labels
No labels