Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FATAL EXCEPTION : Unable to start receiver ir.cafebazaar.poolakey.receiver.BillingReceiver #21

Open
ali-katayoni opened this issue Mar 18, 2024 · 4 comments

Comments

@ali-katayoni
Copy link

ali-katayoni commented Mar 18, 2024

با سلام.
خطای زیر در زمان فراخوانی متد connect مشاهده شد و باعث کرش کردن و بسته شدن اپ شد. اهمیتی ندارد این متد چه زمانی و به چه طریقی فراخوانی شود. فراخوانی متد connect بازار در هر زمانی و شرایطی با این خطا مواجه خواهد شد :

Syncing files to device SM A525F...
D/AndroidRuntime(20899): Shutting down VM
E/AndroidRuntime(20899): FATAL EXCEPTION: main
E/AndroidRuntime(20899): Process:….., PID: ….
E/AndroidRuntime(20899): java.lang.RuntimeException: Unable to start receiver ir.cafebazaar.poolakey.receiver.BillingReceiver: java.lang.IllegalStateException: Reply already submitted
E/AndroidRuntime(20899): at android.app.ActivityThread.handleReceiver(ActivityThread.java:4903)
E/AndroidRuntime(20899): at android.app.ActivityThread.-$$Nest$mhandleReceiver(Unknown Source:0)
E/AndroidRuntime(20899): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2420)
E/AndroidRuntime(20899): at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(20899): at android.os.Looper.loopOnce(Looper.java:226)
E/AndroidRuntime(20899): at android.os.Looper.loop(Looper.java:313)
E/AndroidRuntime(20899): at android.app.ActivityThread.main(ActivityThread.java:8762)
E/AndroidRuntime(20899): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(20899): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:604)
E/AndroidRuntime(20899): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
E/AndroidRuntime(20899): Caused by: java.lang.IllegalStateException: Reply already submitted
E/AndroidRuntime(20899): at io.flutter.embedding.engine.dart.DartMessenger$Reply.reply(DartMessenger.java:431)
E/AndroidRuntime(20899): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler$1.success(MethodChannel.java:272)
E/AndroidRuntime(20899): at ir.cafebazaar.flutter_poolakey.FlutterPoolakeyPlugin$connect$1$1.invoke(FlutterPoolakeyPlugin.kt:114)
E/AndroidRuntime(20899): at ir.cafebazaar.flutter_poolakey.FlutterPoolakeyPlugin$connect$1$1.invoke(FlutterPoolakeyPlugin.kt:113)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.callback.ConnectionCallback$connectionSucceed$2.invoke(ConnectionCallback.kt:19)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.callback.ConnectionCallback$connectionSucceed$2.invoke(ConnectionCallback.kt:6)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.billing.connection.ReceiverBillingConnection.onBillingSupportActionReceived(ReceiverBillingConnection.kt:428)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.billing.connection.ReceiverBillingConnection.onActionReceived(ReceiverBillingConnection.kt:131)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.billing.connection.ReceiverBillingConnection.access$onActionReceived(ReceiverBillingConnection.kt:47)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.billing.connection.ReceiverBillingConnection$createReceiverConnection$1.onNewBroadcastReceived(ReceiverBillingConnection.kt:122)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.receiver.BillingReceiver.notifyObservers(BillingReceiver.kt:23)
E/AndroidRuntime(20899): at ir.cafebazaar.poolakey.receiver.BillingReceiver.onReceive(BillingReceiver.kt:16)
E/AndroidRuntime(20899): at android.app.ActivityThread.handleReceiver(ActivityThread.java:4894)
E/AndroidRuntime(20899): ... 9 more
I/Process (20899): Sending signal. PID: 20899 SIG: 9
Lost connection to device.

این مشکل بر روی دستگاه Samsung A 52 با اندروید ورژن 13 و One UI version 5.1 وجود دارد.
بر روی برخی دستگاه های با ورژن قدیمی اندروید بررسی شد و مشکل فوق وجود نداشت.

ورژن فلاتر : 3.19.0
ورژن پولکی : 2.2.0

درضمن، هشدار زیر هم در ورژن فوق نمایش داده میشود.

AppData\Local\Pub\Cache\hosted\pub.dev\flutter_poolakey-2.2.0\android\src\main\kotlin\ir\cafebazaar\flutter_poolakey\PaymentActivity.kt:41:13: warning: 'when' is exhaustive so 'else' is redundant here
else -> throw InvalidParameterException("Undefined command: $command")
^

@ali-katayoni ali-katayoni changed the title FATAL EXCEPTION FATAL EXCEPTION : Unable to start receiver ir.cafebazaar.poolakey.receiver.BillingReceiver Mar 18, 2024
@mj-yousefi
Copy link

با سلام.
من هم در ورژن یکسان به همین مشکل تو بعضی دیوایس‌ها برخوردم (با سایر ورژن‌ها امتحان نکردم). ورژن فلاتر : 3.19.0 و ورژن پولکی : 2.2.0. این مورد رو در چند گوشی مشاهده کردم.

یک راه هم برای شبیه‌سازی این خطا در سایر گوشی‌ها وجود داره به این ترتیب که ابتدا برنامه‌ی خودتون را باز کنید، بعد وارد اپلیکیشن بازار بشید و اون رو ببنید. یا بعد از از این که وارد بازار شدید، مجدد وارد اپ خودتون بشید و سپس بازار رو از recent اپلیکیشن‌ها ببنید. احتمال میدم تو این حالت دیسکانکت شدن و کانکت شدن مجدد به بازار اتفاق میفته و خطا رخ میده.

طبق بررسی من در FlutterPoolakeyPlugin.kt در بخش زیر خطا رخ میده:

private fun connect(inAppBillingKey: String?, result: Result) {
        val securityCheck = if (inAppBillingKey != null) {
            SecurityCheck.Enable(rsaPublicKey = inAppBillingKey)
        } else {
            SecurityCheck.Disable
        }
        val paymentConfiguration = PaymentConfiguration(localSecurityCheck = securityCheck)

        payment = Payment(context = requireActivity, config = paymentConfiguration)

        paymentConnection = payment.connect {
            connectionSucceed {
                result.success(true)
            }
            connectionFailed {
                result.error("CONNECTION_HAS_FAILED", it.toString(), null)
            }
            disconnected {
                channel.invokeMethod("disconnected", null)
            }
        }
    }

و result.success اشتباها کال میشه.

چون برای من فورس بود، این بخش رو عوض کردم و مشکلم حل شد. با چند دیوایس تست کردم. کدی که تغییر دادم رو تو برنچ مجزا کامیت کردم و اینجا PL دادم. امیدوارم به حل این مشکل کمک کنه.

@AminFeizi
Copy link

این خیلی بده که بازار آپدیتی نمیده براش تا فیکسش کنه

@Saeeed-B
Copy link

@AminFeizi تازه جالب اینجاست توی مستندات همین پکیج رو معرفی کرده ولی اصلا گردن نمیگیرن ، میگن این پیکیج رو پشتیبانی نمیکنیم

@EmperorofWeb
Copy link

@Saeeed-B
مگه میشه؟! این پکیج تو ریپازیتوری رسمی بازاره!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants