Android Play Core InAppReviewApiダイアログが表示されない

Aug 21 2020

本日リリースされたばかりのGoogleのReviewAPI(Play Coreライブラリ1.8.0)を利用しようとしています。見るhttps://developer.android.com/guide/playcore/in-app-review。私は現在、次のコードを使用してそれを使用しています:

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");
            }
        });
    }

Google Playデベロッパーコンソールの内部テストトラックを使用してテストしましたが、残念ながら、テストアカウントでレビューダイアログが表示されません。私は何が間違っているのですか?

回答

PhantomLord Aug 30 2020 at 01:03

私もこれを調査しようとしています。たぶん、proguardはPlayCoreのいくつかのクラスを難読化します。すべてのクラスをPlayコア、Parcelable、Serializableに保持するようにしてください。ただし、logcatにはエラーがあります。

-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();
}