Mon achat intégré à l'application fonctionne très bien. Toutefois, lorsque mes utilisateurs ne souhaitent pas l'acheter et qu'ils annulent ou quittent la "boîte de dialogue contextuelle Google Store", mon application se bloque (quitte). Je le code suivant:Lorsque l'internaute ne souhaite pas acheter de produit intégré à l'application et qu'il annule la boîte de dialogue contextuelle de la boutique Google, l'application se bloque. Pourquoi?
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent data) {
if (!mHelper.handleActivityResult(requestCode,
resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
}
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
public void onIabPurchaseFinished(IabResult result, Purchase purchase) {
if (purchase.getSku().equals(ITEM_SKU)) {
Log.d(TAG, "Purchase is fast mode");
try {
mHelper.consumeAsync(purchase, mConsumeFinishedListener);
} catch (Exception e) {
Log.d(TAG, "error");
}
}
}
};
IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = new IabHelper.OnConsumeFinishedListener() {
public void onConsumeFinished(Purchase purchase, IabResult result) {
Log.d(TAG, "Consumption finished. JSON: " + purchase.getOriginalJson() + ", signature: " + purchase.getSignature());
if (mHelper == null) return;
if (result.isSuccess()) {
Log.i(TAG, "BOUGHT THE ITEM :-)");
clickButton.setEnabled(true);
buyButton.setEnabled(false);
} else {
Log.e(TAG, "Error while consuming: " + result);
}
Log.d(TAG, "End consumption flow.");
}
};
S'il vous plaît signaler vos erreurs logcat lorsque l'application se bloque. – DaveNOTDavid
Pour l'instant, je n'ai pas de périphérique physique pour le tester. Aucune suggestion? –
Eh bien, même pour les émulateurs, il devrait y avoir quelques erreurs après le plantage de l'application. Avez-vous vérifié votre logcat IDE dans le moniteur Android? – DaveNOTDavid