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