2

私はAndroidのアプリ課金に取り組んでいます..私はAndroidのチュートリアルに従い、現在テストアプリをテストしています.(android.test.purchased) Googleコンソールでアプリを作成します.apkに署名し、コピーするよりもGoogleコンソールにアップロードします.公開鍵をコードに貼り付け、apk に再度署名し、テスト購入した ID を購入しようとしたよりも電話にインストールします。購入は成功したと表示されますが、ログ値には購入したデータとデータ署名が表示され、データ署名が NULL (空) になりました

楽しい部分は handleActivityResult メソッドにあり、天気データの署名または購入したデータをチェックする条件が Null であるかどうかにかかわらず、私のコードではそれをスキップすると実行されませんか? どのように可能ですか?

ここでログを取得しますが、logcat には「In BUG Null value」が表示されません

 if (purchaseData == null || dataSignature == null) {
            logError("BUG: either purchaseData or dataSignature is null.");
            Log.e("Inapp", "In BUG Null value");
            logDebug("Extras: " + data.getExtras().toString());
            result = new IabResult(IABHELPER_UNKNOWN_ERROR, "IAB returned null purchaseData or dataSignature");
            if (mPurchaseListener != null) mPurchaseListener.onIabPurchaseFinished(result, null);
            return true;
        }
4

1 に答える 1

3

私は自分でこの問題を抱えていました。しばらくして、自分が間違っていたことに気づきました。IABHelper で間違ったメソッドを呼び出していました。

Google Developer Console でサブスクリプションとして登録されている SKU で mHelper.launchPurchaseFlow(...) を呼び出すと、次のエラーが発生します: IAB が null purchaseData または dataSignature を返しました (応答 -1008:不明なエラー)。

サブスクリプションとして登録されている SKU がある場合は、代わりにmHelper.launchSubscriptionPurchaseFlow(...)メソッドを使用する必要があります。

お役に立てれば。

于 2015-06-01T10:33:19.397 に答える