britannio / in_app_review

A Flutter plugin for showing the In-App Review/System Rating pop up on Android, IOS, and MacOS. It makes it easy for users to rate your app.
311 stars 81 forks source link

Calling requestReview not working on Android in production #19

Closed SpencerLindemuth closed 3 years ago

SpencerLindemuth commented 3 years ago

It is working as expected when the app is shared using internal app sharing, but if I download the production release from the play store the review prompt is never shown. Logcat is showing this:

I InAppReviewPlugin: requestReview: called
I InAppReviewPlugin: launchReviewFlow: called
E ActivityTaskManager: intent received is not valid or null
I ActivityTaskManager: START u0 {cmp=com.offtherecord.otr_mobile_app/com.google.android.play.core.common.PlayCoreDialogWrapperActivity (has extras)} from uid 10467
E Parcel  : Class not found when unmarshalling: com.google.android.play.core.review.d
E Parcel  : java.lang.ClassNotFoundException: com.google.android.play.core.review.d
E Parcel  :     at java.lang.Class.classForName(Native Method)
E Parcel  :     at java.lang.Class.forName(Class.java:454)
E Parcel  :     at android.os.Parcel.readParcelableCreator(Parcel.java:3031)
E Parcel  :     at android.os.Parcel.readParcelable(Parcel.java:2981)
E Parcel  :     at android.os.Parcel.readValue(Parcel.java:2883)
E Parcel  :     at android.os.Parcel.readArrayMapInternal(Parcel.java:3261)
E Parcel  :     at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
E Parcel  :     at android.os.BaseBundle.unparcel(BaseBundle.java:236)
E Parcel  :     at android.os.BaseBundle.getString(BaseBundle.java:1160)
E Parcel  :     at android.content.Intent.getStringExtra(Intent.java:8552)
E Parcel  :     at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:847)
E Parcel  :     at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:732)
E Parcel  :     at com.android.server.wm.ActivityStarter.startActivityMayWait(ActivityStarter.java:2072)
E Parcel  :     at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:646)
E Parcel  :     at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1717)
E Parcel  :     at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1613)
E Parcel  :     at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1566)
E Parcel  :     at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1746)
E Parcel  :     at android.os.Binder.execTransactInternal(Binder.java:1056)
E Parcel  :     at android.os.Binder.execTransact(Binder.java:1029)
E Parcel  : Caused by: java.lang.ClassNotFoundException: com.google.android.play.core.review.d
E Parcel  :     ... 20 more
W Bundle  : Failed to parse Bundle, but defusing quietly
W Bundle  : android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.google.android.play.core.review.d
W Bundle  :     at android.os.Parcel.readParcelableCreator(Parcel.java:3059)
W Bundle  :     at android.os.Parcel.readParcelable(Parcel.java:2981)
W Bundle  :     at android.os.Parcel.readValue(Parcel.java:2883)
W Bundle  :     at android.os.Parcel.readArrayMapInternal(Parcel.java:3261)
W Bundle  :     at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
W Bundle  :     at android.os.BaseBundle.unparcel(BaseBundle.java:236)
W Bundle  :     at android.os.BaseBundle.getString(BaseBundle.java:1160)
W Bundle  :     at android.content.Intent.getStringExtra(Intent.java:8552)
W Bundle  :     at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:847)
W Bundle  :     at com.android.server.wm.ActivityStarter.startActivity(ActivityStarter.java:732)
W Bundle  :     at com.android.server.wm.ActivityStarter.startActivityMayWait(ActivityStarter.java:2072)
W Bundle  :     at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:646)
W Bundle  :     at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1717)
W Bundle  :     at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1613)
W Bundle  :     at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1566)
W Bundle  :     at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1746)
W Bundle  :     at android.os.Binder.execTransactInternal(Binder.java:1056)
W Bundle  :     at android.os.Binder.execTransact(Binder.java:1029)

Edit sorry should add flutter -v output

Flutter (Channel stable, 1.22.5, on macOS 11.0.1 20B29 darwin-x64, locale en-US)
    • Flutter version 1.22.5
    • Framework revision 7891006299 (4 weeks ago), 2020-12-10 11:54:40 -0800
    • Engine revision ae90085a84
    • Dart version 2.10.4
britannio commented 3 years ago

Hey @SpencerLindemuth, since it's working when you've tested your app via internal app sharing, I think that you've exceeded the following quota: https://developer.android.com/guide/playcore/in-app-review#quotas

SpencerLindemuth commented 3 years ago

That's what I had thought initially as well, but I tried on a new device with a new account and was met with the same issue.

Edit: Actually I apologize I realize it still ended up being the same google play account. Let me dig in more and I'll update here or close the issue depending on what I find!