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