tinkoff-mobile-tech / tinkoff-asdk-android

Other
56 stars 28 forks source link

Parcelable encountered IOException reading a Serializable object (name = BankChooseInfo) #268

Open hotmule opened 1 year ago

hotmule commented 1 year ago

На Gradle 8 с включенными isMinifyEnabled и isShrinkResources SDK 2.13.3 крашится со следующей ошибкой, proguard rules из README не исправляют проблему

FATAL EXCEPTION: main
                                                                                                    Process: com.kazanexpress.ke_app.staging, PID: 25318
                                                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kazanexpress.ke_app.staging/ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity}: android.os.BadParcelableException: Parcelable encountered IOException reading a Serializable object (name = ru.tinkoff.acquiring.sdk.models.BankChooseInfo)
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3641)
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3778)
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101)
                                                                                                        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138)
                                                                                                        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2303)
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106)
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201)
                                                                                                        at android.os.Looper.loop(Looper.java:288)
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7884)
                                                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
                                                                                                    Caused by: android.os.BadParcelableException: Parcelable encountered IOException reading a Serializable object (name = ru.tinkoff.acquiring.sdk.models.BankChooseInfo)
                                                                                                        at android.os.Parcel.readSerializableInternal(Parcel.java:5111)
                                                                                                        at android.os.Parcel.readValue(Parcel.java:4639)
                                                                                                        at android.os.Parcel.readValue(Parcel.java:4347)
                                                                                                        at android.os.Parcel.-$$Nest$mreadValue(Unknown Source:0)
                                                                                                        at android.os.Parcel$LazyValue.apply(Parcel.java:4445)
                                                                                                        at android.os.Parcel$LazyValue.apply(Parcel.java:4404)
                                                                                                        at android.os.BaseBundle.getValueAt(BaseBundle.java:394)
                                                                                                        at android.os.BaseBundle.getValue(BaseBundle.java:374)
                                                                                                        at android.os.BaseBundle.getValue(BaseBundle.java:357)
                                                                                                        at android.os.BaseBundle.getValue(BaseBundle.java:350)
                                                                                                        at android.os.BaseBundle.getSerializable(BaseBundle.java:1451)
                                                                                                        at android.os.Bundle.getSerializable(Bundle.java:1171)
                                                                                                        at android.content.Intent.getSerializableExtra(Intent.java:9047)
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity$banksInfo$2.invoke(BankChooseActivity.kt:48)
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity$banksInfo$2.invoke(BankChooseActivity.kt:47)
                                                                                                        at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81)
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity.getBanksInfo(BankChooseActivity.kt:47)
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity.onCreate(BankChooseActivity.kt:54)
                                                                                                        at android.app.Activity.performCreate(Activity.java:8341)
                                                                                                        at android.app.Activity.performCreate(Activity.java:8320)
                                                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417)
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3622)
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3778) 
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
                                                                                                        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138) 
                                                                                                        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2303) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201) 
                                                                                                        at android.os.Looper.loop(Looper.java:288) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7884) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 
                                                                                                    Caused by: java.io.InvalidClassException: kotlin.collections.builders.SerializedMap; no valid constructor
                                                                                                        at java.io.ObjectStreamClass$ExceptionInfo.newInvalidClassException(ObjectStreamClass.java:154)
                                                                                                        at java.io.ObjectStreamClass.checkDeserialize(ObjectStreamClass.java:798)
                                                                                                        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1901)
                                                                                                        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1440)
                                                                                                        at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:2142)
                                                                                                        at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:2066)
                                                                                                        at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1927)
                                                                                                        at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1440)
                                                                                                        at java.io.ObjectInputStream.readObject(ObjectInputStream.java:428)
                                                                                                        at android.os.Parcel.readSerializableInternal(Parcel.java:5098)
                                                                                                        at android.os.Parcel.readValue(Parcel.java:4639) 
                                                                                                        at android.os.Parcel.readValue(Parcel.java:4347) 
                                                                                                        at android.os.Parcel.-$$Nest$mreadValue(Unknown Source:0) 
                                                                                                        at android.os.Parcel$LazyValue.apply(Parcel.java:4445) 
                                                                                                        at android.os.Parcel$LazyValue.apply(Parcel.java:4404) 
                                                                                                        at android.os.BaseBundle.getValueAt(BaseBundle.java:394) 
                                                                                                        at android.os.BaseBundle.getValue(BaseBundle.java:374) 
                                                                                                        at android.os.BaseBundle.getValue(BaseBundle.java:357) 
                                                                                                        at android.os.BaseBundle.getValue(BaseBundle.java:350) 
                                                                                                        at android.os.BaseBundle.getSerializable(BaseBundle.java:1451) 
                                                                                                        at android.os.Bundle.getSerializable(Bundle.java:1171) 
                                                                                                        at android.content.Intent.getSerializableExtra(Intent.java:9047) 
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity$banksInfo$2.invoke(BankChooseActivity.kt:48) 
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity$banksInfo$2.invoke(BankChooseActivity.kt:47) 
                                                                                                        at kotlin.UnsafeLazyImpl.getValue(Lazy.kt:81) 
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity.getBanksInfo(BankChooseActivity.kt:47) 
                                                                                                        at ru.tinkoff.acquiring.sdk.ui.activities.BankChooseActivity.onCreate(BankChooseActivity.kt:54) 
                                                                                                        at android.app.Activity.performCreate(Activity.java:8341) 
                                                                                                        at android.app.Activity.performCreate(Activity.java:8320) 
                                                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1417) 
                                                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3622) 
                                                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3778) 
                                                                                                        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:101) 
                                                                                                        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:138) 
                                                                                                        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
                                                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2303) 
                                                                                                        at android.os.Handler.dispatchMessage(Handler.java:106) 
                                                                                                        at android.os.Looper.loopOnce(Looper.java:201) 
                                                                                                        at android.os.Looper.loop(Looper.java:288) 
                                                                                                        at android.app.ActivityThread.main(ActivityThread.java:7884) 
                                                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                                                        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 
                                                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936) 
hotmule commented 1 year ago

Пришлось откатиться на 2.13.1, потому что тогда не было класса BankChooseInfo, но на этой версии много вылетов, связанных с #238