In App Billing V2でエラー「アイテムは見つかりませんでした。」

勉強も兼ねて、In App Billing V2の月額課金機能を「ブラックバスを飼おう」に組み込んでいる最中です。

(メニューに突然、「愛の募金」という謎の項目が追加されて、ドン引きした方もいるかと思います。)

ところがアプリ内サービスの購入画面に遷移する際、以下のエラーが。

ただ、このダイアログを閉じると、ちゃんと購入画面に飛びます。
また、定期購入の方はこのエラーがでません。
画面遷移的には問題無いような気もしますが、とても気持ちが悪いため、ちょっと調べてみると、購入画面に飛ぶ際にrequestPurchase()を2度呼んでることが分かりました。Dungeons.javaのonClick()の判定文がまずいようです。

    /**
     * Called when a button is pressed.
     */
	@Override
	public void onClick(View v) {
		if (v == mBuyButton) {

			if (Consts.DEBUG) {
				Log.d(TAG, "buying: " + mItemName + " sku: " + mSku);
			}
			if (mManagedType != Managed.SUBSCRIPTION
					&& !mBillingService.requestPurchase(mSku,
							Consts.ITEM_TYPE_INAPP, mPayloadContents)) {
				showDialog(DIALOG_BILLING_NOT_SUPPORTED_ID);
			} else if (!mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_SUBSCRIPTION, mPayloadContents)) {

				// Note: mManagedType == Managed.SUBSCRIPTION
				showDialog(DIALOG_SUBSCRIPTIONS_NOT_SUPPORTED_ID);
			}
		} else if (v == mEditPayloadButton) {
			showPayloadEditDialog();
		} else if (v == mEditSubscriptionsButton) {
			editSubscriptions();
		}
	}

この行に、

} else if (mManagedType == Managed.SUBSCRIPTION && !mBillingService.requestPurchase(mSku, Consts.ITEM_TYPE_SUBSCRIPTION, mPayloadContents)) {

月額課金かどうかのチェックを入れると、うまくいきました。
すっきり!!

In App Billing V2でエラー「アイテムは見つかりませんでした。」」への1件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください