plaidev / karte-android-sdk

KARTE SDK for Android
https://karte.io/
Apache License 2.0
5 stars 3 forks source link

[inappmessaging] Application crash rarely after showing popup. #1

Closed tikidunpon closed 4 years ago

tikidunpon commented 4 years ago

Expected Behavior

Application show popup without crash.

Current Behavior

Application crash rarely after showing popup.

Possible Solution

This problem fixed in inappmessaging module 2.5.1. https://developers.karte.io/docs/release-notes-android-sdk-v2#releases---20200821

Steps to Reproduce

We can not reproduce this problem on our environment. (it detected on crashlytics)

Context (Environment)

We have seen this problem only on Android 9 for now.

Module Version
core 2.4.0
inappmessaging 2.5.0
notifications -
variables -
visualtracking -

Detailed Description

Crash Log

`Fatal Exception: java.lang.IllegalStateException: View io.karte.android.inappmessaging.c.g{df4d7f6 V.E...... ......I. 0,0-0,0 #8f0101a6 app:id/karte_overlay_view} has already been added to the window manager.
       at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:359)
       at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:96)
       at io.karte.android.inappmessaging.internal.view.WindowView.show(WindowView.java:127)
       at io.karte.android.inappmessaging.internal.IAMWindow.show(IAMWindow.java:120)
       at io.karte.android.inappmessaging.internal.IAMWebView.handleChangePv(IAMWebView.java:197)
       at io.karte.android.inappmessaging.InAppMessaging$reset$1.run(InAppMessaging.java:127)
       at android.os.Handler.handleCallback(Handler.java:883)
       at android.os.Handler.dispatchMessage(Handler.java:100)
       at android.os.Looper.loop(Looper.java:214)
       at android.app.ActivityThread.main(ActivityThread.java:7397)
       at java.lang.reflect.Method.invoke(Method.java)
       at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)`

Possible Implementation