私のアプリ内購入は非常にうまくいきますが、ユーザーが購入したくないときに「Googleストアのポップアップダイアログ」をキャンセルすると、アプリがクラッシュします(終了します)。ユーザーがアプリ内アイテムを購入したくない場合やGoogleストアのポップアップダイアログをキャンセルすると、アプリがクラッシュします。どうして?
@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.");
}
};
アプリケーションがクラッシュしたときにlogcatエラーを投稿してください。 – DaveNOTDavid
今のところ、私はそれをテストする物理的なデバイスがありません。助言がありますか? –
さて、エミュレータでさえ、アプリケーションがクラッシュした後、いくつかのエラーが発生するはずです。 AndroidモニターでIDE logcatを確認しましたか? – DaveNOTDavid