Android Play Core InAppReview API-Dialogfeld wird nicht angezeigt

Aug 21 2020

Ich versuche, die Review-API (Play Core Library 1.8.0) von Google zu verwenden, die gerade heute veröffentlicht wurde. Sehenhttps://developer.android.com/guide/playcore/in-app-review. Ich benutze es derzeit mit dem folgenden Code:

public void inAppReview() {
        ReviewManager reviewManager = ReviewManagerFactory.create(getActivity());
        Task<ReviewInfo> request = reviewManager.requestReviewFlow();
        request.addOnCompleteListener(new OnCompleteListener<ReviewInfo>() {
            @Override
            public void onComplete(@NonNull Task<ReviewInfo> task) {    
                if (task.isSuccessful()) {
                    ReviewInfo reviewInfo = task.getResult();
                    
                    Task<Void> flow = reviewManager.launchReviewFlow(getActivity(), reviewInfo);
                    flow.addOnCompleteListener(new OnCompleteListener<Void>() {
                        @Override
                        public void onComplete(@NonNull Task<Void> task) {
                            Log.e("task<void>", task.isComplete() + "");
                            Log.e("task<void>", task.isSuccessful() + "");
                        }
                    }).addOnFailureListener(new com.google.android.play.core.tasks.OnFailureListener() {
                        @Override
                        public void onFailure(Exception e) {
                            
                        }
                    }); 
                } else {
                    Log.e("Review error", "Review error");
                }
            }
        }).addOnFailureListener(new com.google.android.play.core.tasks.OnFailureListener() {
            @Override
            public void onFailure(Exception e) { 
              Log.e("Review error", "Review error");
            }
        });
    }

Ich habe mithilfe der internen Teststrecke in der Google Play Developer Console getestet, erhalte jedoch leider keinen Überprüfungsdialog für mein Testkonto. Was mache ich falsch?

Antworten

PhantomLord Aug 30 2020 at 01:03

Ich versuche das auch zu untersuchen. Vielleicht verschleiert Proguard einige Klassen von Play Core. Versuchen Sie, alle Klassen in Play Core, Parcelable und Serializable zu belassen. Im Logcat sind jedoch Fehler aufgetreten

-keep class * implements com.google.android.play { *; }
-keep class com.google.android.play.** { *; }
-keep interface com.google.android.play.** { *; }

-keepclassmembers class * implements android.os.Parcelable {
    static *** CREATOR;
}

-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}