urbanairship / android-library

Urban Airship Android SDK
Other
109 stars 123 forks source link

java.lang.IllegalStateException Already registered a list of actions in this process #229

Closed cjmaroney01-sams closed 6 months ago

cjmaroney01-sams commented 1 year ago

❗For how-to inquiries involving Airship functionality or use cases, please contact (support)[https://support.airship.com/].

Preliminary Info

What Airship dependencies are you using?

com.urbanairship.android:urbanairship-automation 16.9.1 com.mparticle:android-urbanairship-kit 5.50.3

What are the versions of any relevant development tools you are using?

Report

What unexpected behavior are you seeing?

seeing a fair number of crashes trying to instantiate an UrbanAirship web view (about 1.1k crashes in 90 days, with 155 of them on one particular day)

crash looks like this: Fatal Exception: java.lang.RuntimeException Unable to start activity ComponentInfo{com.rfi.sams.android/com.urbanairship.iam.html.HtmlActivity}: android.view.InflateException: Binary XML file line #20 in com.rfi.sams.android:layout/ua_iam_html: Binary XML file line #20 in com.rfi.sams.android:layout/ua_iam_html: Error inflating class com.urbanairship.webkit.AirshipWebView

What is the expected behavior?

I would expect this web view to instantiate properly

What are the steps to reproduce the unexpected behavior?

I do not have repro steps

Do you have logging for the issue?

root cause looks like this:

Caused by java.lang.IllegalStateException Already registered a list of actions in this process

lh0.d (chromium-TrichromeWebViewGoogle6432.aab-stable-573519633:12) com.android.webview.chromium.WebViewChromiumFactoryProvider. (chromium-TrichromeWebViewGoogle6432.aab-stable-573519633:439)

android.webkit.WebView. (WebView.java:350) com.urbanairship.webkit.AirshipWebView. (AirshipWebView.java:70) com.urbanairship.webkit.AirshipWebView. (AirshipWebView.java:59) java.lang.reflect.Constructor.newInstance0 (Constructor.java)

androidx.activity.ComponentActivity.setContentView (ComponentActivity.java:465) com.urbanairship.activity.ThemedActivity.setContentView (ThemedActivity.java:65) com.urbanairship.iam.html.HtmlActivity.onCreateMessage (HtmlActivity.java:79) com.urbanairship.iam.InAppMessageActivity.onCreate (InAppMessageActivity.java:80) android.app.Activity.performCreate (Activity.java:8591)

com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1067)

jyaganeh commented 1 year ago

Hi @cjmaroney01-sams, it doesn't look like the crash is coming from the Airship SDK and unfortunately seems like this may potentially be a bug in some of the recent Android System WebView releases. A similar report was opened in the Chromium bug tracker about a month ago. The exception is being thrown from this line in SafeModeController.java.

I'm not sure if there's much we can do, but will look into it some more to see if there might be any ways to work around whatever is causing the system webview to end up in this state. The comment on the registerActions method mentions that it must only be called once per-process. Does your app (or any dependencies) make use of multiple processes, by chance?

My test device is on the same System WebView version (114.0.5735.196 / 573519633), but I haven't had any luck reproducing the issue locally so far.

cjmaroney01-sams commented 1 year ago

thanks for getting back to me about this.....we are not multi-process and I don't know of any dependencies that are either.....you're right that this does look pretty much just like the issue in the google tracker......so I guess we will just wait for google to release a fix or else someone in that tracker posts a workaround or something to fix it.

jyaganeh commented 6 months ago

Closing this due to lack of updates. It unfortunately looks like the Chromium issue is still open. Feel free to reopen or file a new issue if you have any more questions.