yoomoney / yookassa-android-sdk

This library allows implementing payment acceptance into mobile apps on Android. It works as an extension to the YooMoney API.
https://yookassa.ru/developers/payment-forms/android-sdk
MIT License
39 stars 22 forks source link

Падение приложения при работе с `WebViewActivity` #93

Open umpteenthdev opened 2 years ago

umpteenthdev commented 2 years ago

Периодически падает приложение при использовании WebViewActivity. Создаем интент через Checkout.create3dsIntent. Причина, судя по стеку ошибки, кроется в использовании тега <fragment> в ym_activity_web_view.xml. Баг проявляется после переезда на androidx.fragment:fragment-ktx выше версии 1.1.0.

Stacktrace ``` Fatal Exception: java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.ViewParent android.view.View.getParent()' on a null object reference at androidx.fragment.app.FragmentLayoutInflaterFactory$1.onViewAttachedToWindow(FragmentLayoutInflaterFactory.java:164) at android.view.View.dispatchAttachedToWindow(View.java:20615) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3522) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3529) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3529) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3529) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3529) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3529) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3529) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2531) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:2065) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8500) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1076) at android.view.Choreographer.doCallbacks(Choreographer.java:897) at android.view.Choreographer.doFrame(Choreographer.java:826) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1061) at android.os.Handler.handleCallback(Handler.java:938) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:236) at android.app.ActivityThread.main(ActivityThread.java:8057) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:656) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:967) ```

Сталкивались с подобной проблемой, решали переездом с тега <fragment> на androidx.fragment.app.FragmentContainerView. Из разницы - немного другой жизненный цикл Fragment относительно жизненного цикла Activity.

iskandarshabaev commented 2 years ago

Заменили <fragment> на FragmentContainerView в версии 6.4.1