Android Play Core InAppReview Api 대화 상자가 표시되지 않음

Aug 21 2020

오늘 출시 된 Google의 Review API (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는 일부 클래스의 Play Core를 난독 화합니다. 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();
}