react-native-store-review icon indicating copy to clipboard operation
react-native-store-review copied to clipboard

Android: In App Review not launching on Samsung S10 (One Plus device working fine)

Open kaushil111 opened this issue 4 years ago • 9 comments
trafficstars

Current Behavior I am trying to test In App Review on Android on my Samsung S10 (Android 10). It only flashes the status bar and throws a mute exception as described below. This does not crash the app but does nothing on the UI as well. I tried the same thing on a One Plus device and everything is working fine. I get a dialog every time in the internal testing track.

E/Parcel: Class not found when unmarshalling: d.b.a.f.a.c.e
    java.lang.ClassNotFoundException: d.b.a.f.a.c.e
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at android.os.Parcel.readParcelableCreator(Parcel.java:3350)
        at android.os.Parcel.readParcelable(Parcel.java:3284)
        at android.os.Parcel.readValue(Parcel.java:3186)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3579)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
        at android.os.BaseBundle.unparcel(BaseBundle.java:236)
        at android.os.BaseBundle.getString(BaseBundle.java:1196)
        at android.content.Intent.getStringExtra(Intent.java:8889)
        at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1122)
        at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:888)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1706)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1556)
        at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1508)
        at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1649)
        at android.os.Binder.execTransactInternal(Binder.java:1190)
        at android.os.Binder.execTransact(Binder.java:1159)

Expected Behavior Open the In App Review on Samsung S10 (Android 10)

Environment

software version
Android
react-native-store-review 0.2.0
react-native 0.63.3
node v12.16.1
yarn 1.22.4

kaushil111 avatar Mar 04 '21 18:03 kaushil111

I noticed that the anonymous class errors can be resolved by adding the following proguard rules:


# Play Core Proguard Rules: Play In-app Review
-keep class com.google.android.play.core.review.ReviewManager {
  public com.google.android.play.core.tasks.Task requestReviewFlow();
  public com.google.android.play.core.tasks.Task launchReviewFlow(android.app.Activity, com.google.android.play.core.review.ReviewInfo);
}

-keepnames class com.google.android.play.core.review.ReviewInfo

-keep class com.google.android.play.core.review.ReviewManagerFactory {
  <init>();

  public static com.google.android.play.core.review.ReviewManager create(android.content.Context);
}

-keep class com.google.android.play.core.review.testing.FakeReviewManager {
  public <init>(android.content.Context);
  public com.google.android.play.core.tasks.Task requestReviewFlow();
  public com.google.android.play.core.tasks.Task launchReviewFlow(android.app.Activity, com.google.android.play.core.review.ReviewInfo);
}

And that changes the exception to be:

E/Parcel: Class not found when unmarshalling: com.google.android.play.core.review.d
    java.lang.ClassNotFoundException: com.google.android.play.core.review.d
        at java.lang.Class.classForName(Native Method)
        at java.lang.Class.forName(Class.java:454)
        at android.os.Parcel.readParcelableCreator(Parcel.java:3350)
        at android.os.Parcel.readParcelable(Parcel.java:3284)
        at android.os.Parcel.readValue(Parcel.java:3186)
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3579)
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292)
        at android.os.BaseBundle.unparcel(BaseBundle.java:236)
        at android.os.BaseBundle.getString(BaseBundle.java:1196)
        at android.content.Intent.getStringExtra(Intent.java:8889)
        at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1122)
        at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:888)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1706)
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1556)
        at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1508)
        at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1649)
        at android.os.Binder.execTransactInternal(Binder.java:1190)
        at android.os.Binder.execTransact(Binder.java:1159)
     Caused by: java.lang.ClassNotFoundException: com.google.android.play.core.review.d
        at java.lang.Class.classForName(Native Method) 
        at java.lang.Class.forName(Class.java:454) 
        at android.os.Parcel.readParcelableCreator(Parcel.java:3350) 
        at android.os.Parcel.readParcelable(Parcel.java:3284) 
        at android.os.Parcel.readValue(Parcel.java:3186) 
        at android.os.Parcel.readArrayMapInternal(Parcel.java:3579) 
        at android.os.BaseBundle.initializeFromParcelLocked(BaseBundle.java:292) 
        at android.os.BaseBundle.unparcel(BaseBundle.java:236) 
        at android.os.BaseBundle.getString(BaseBundle.java:1196) 
        at android.content.Intent.getStringExtra(Intent.java:8889) 
        at com.android.server.wm.ActivityStarter.executeRequest(ActivityStarter.java:1122) 
        at com.android.server.wm.ActivityStarter.execute(ActivityStarter.java:888) 
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1706) 
        at com.android.server.wm.ActivityTaskManagerService.startActivityAsUser(ActivityTaskManagerService.java:1556) 
        at com.android.server.wm.ActivityTaskManagerService.startActivity(ActivityTaskManagerService.java:1508) 
        at android.app.IActivityTaskManager$Stub.onTransact(IActivityTaskManager.java:1649) 
        at android.os.Binder.execTransactInternal(Binder.java:1190) 
        at android.os.Binder.execTransact(Binder.java:1159) 

kaushil111 avatar Mar 04 '21 18:03 kaushil111

@oblador do you think we should add these proguard rules to the project itself?

kaushil111 avatar Mar 04 '21 19:03 kaushil111

Yeah, please make a PR 👍

oblador avatar Mar 11 '21 23:03 oblador

App Review is not triggering on Android emulator, is it expected or an issue? But its working on ios

MaganAnkur avatar Apr 16 '21 13:04 MaganAnkur

App Review is not triggering on Android emulator, is it expected or an issue? But its working on ios

@oblador Any suggestions please?

MaganAnkur avatar Apr 23 '21 03:04 MaganAnkur

Adding those proguard rules kaushil111 mentioned above make it work on my dev device (Android 10, Samsung Galaxy A10). However, I'm being redirected to Google Play app instead of seeing the in-app review prompt.

The in-app prompt is shown correctly (and without the rules) on my Moto G first gen running Android 5 though.

pabloluz avatar May 02 '21 15:05 pabloluz

I finally did showing review card.

bundle app with .aab and make new test track add personal email account to tester after app bundle is published at google play store, download it by test link with company account (if personal account, app name will be just app name. but if company account, it show (beta) at the end of app name) if you install beta app, change google play store account to personal account. clear google play store local data by Settings - Apps run installed app, and trigger in-app review API done! 🎉

azamkth avatar Mar 17 '22 12:03 azamkth

is this resolved? Reviews still not showing up on the latest Android phones

littlehongkong avatar Jul 19 '22 13:07 littlehongkong

Internal test but no dialog shown on android

PietroGranati avatar Sep 06 '22 10:09 PietroGranati

App Review is not triggering on Android emulator, is it expected or an issue? But its working on ios

@oblador Any suggestions please?

has this been resolved?

davidwinograd1 avatar Jul 25 '23 16:07 davidwinograd1

work on ios, not on android, using galaxy s20s, s23, redmi note 8

jerryphm avatar Aug 17 '23 04:08 jerryphm

any updates on reviews for Android?

CostasCF avatar Sep 07 '23 19:09 CostasCF

You need to have play store installed on your simulator (and an app on play store) for it to work.

oblador avatar Oct 26 '23 12:10 oblador

You need to have play store installed on your simulator (and an app on play store) for it to work.

Yes, I already have the package on android in a production app, works great!

CostasCF avatar Oct 26 '23 15:10 CostasCF

Cool, closing this for now then!

oblador avatar Oct 26 '23 16:10 oblador