アプリ内課金を使用しようとしています:
mIabHelper = new IabHelper(this, BILLING_KEY);
mIabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
@Override
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
Log.d(TAG, "Problem setting up In-app Billing: " + result);
}
}
});
そして、エラーを取得します:
Problem setting up In-app Billing: IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)
どうして? Playストアのキャッシュをクリアしようとしましたが、うまくいきませんでした。
ワイプは助けてくれました。奇妙なエラー。
さて、私たちは多くの情報がなければあなたを助けることはできません。
1)エミュレーターでテストしていますか?
2)マニフェストに正しい許可を設定しましたか? (com.Android.vending.BILLING)
3)まだアプリをテストしている場合、プレイストアからテストアプリライセンスを取得し、SDKにLVLをインポートし、ライセンス検証ライブラリを設定しましたか? (ここでフォローできます: 設定
4)アクティビティonActivityResultでアクティビティ結果を正しく処理しましたか?Googleの例に見られるように、次のようにします:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);
// Pass on the activity result to the helper for handling
if (!inappBillingHelper.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
else {
Log.i(TAG, "onActivityResult handled by IABUtil.");
}
}
また、エミュレータまたはデバイス、デバイス名、Androidバージョンなどでテストしている場合など、より多くの情報があると便利です。
このエラーは、デバイスのアプリ内課金サービスに接続しているが、サービスがIABバージョン3をサポートしていないことを示しています。デバイスのバージョンのGoogle Playは、IABのバージョン2のみをサポートしている可能性があります。デバイスで実行しているGoogle Playのバージョンは何ですか?
Google Playのバージョンは他の機能を備えていますか(たとえば、Google Playストアを開くことができますか)?デバイスの日付がオフになっている場合、またはその他の問題がある場合、Google Play自体が南に移動することがあります。
最後に、logcatの出力には何が含まれていますか?詳細を入力すると、支援が提供しやすくなります。
すべてを登録してGoogle Playストアを設定する前に、アプリをインストールしたときにそのエラーが発生しました。 Google Playストアアカウントを設定すると、エラーはなくなりました。
請求のバージョン3.0を使用している場合でも、請求のバージョン2.0のドキュメントは、実際にはこのバージョンの3.0よりも有用でした。
2.0がどのように応答コード3を記述するかを以下に示します:
指定したAPI_VERSIONがGoogle Playアプリケーションによって認識されないため、またはユーザーがアプリ内課金の対象外であるため、アプリ内課金が利用できないことを示します(たとえば、ユーザーはアプリ内購入を禁止している国に住んでいます)。
私にとっては、テストする前にまず携帯電話でテスト用のGoogleアカウントを設定する必要がありました。私はそのステップを忘れました。一度それを修正したら...
ここでサーバー応答コードを探します:
http://developer.Android.com/google/play/billing/v2/billing_reference.html
http://developer.Android.com/google/play/billing/billing_reference.html
修正する問題を見つけました。urLuckyPatcherでrootを試し、configのトグルを開きます->課金を無効にします。
電話からすべてのGoogleアカウントを削除したときに、まさにこのエラーが発生しました(ワイプ後におそらく電話の再起動後にアカウントを設定するため、修正をワイプします)。
アカウントを追加した後、このエラーは表示されませんでした。
関連する問題 InApp購入でこのエラーコード3を取得する可能性はありますか? 。
Google Playのキャッシュを消去すると、このエラーが発生しました。 IABが再び機能する前に、Google Playアプリを再度開き、条件に同意する必要があります。
同じ問題があった。
私のデバイスは、自己更新しなかった古いバージョンのGoogleマーケットでルート化され、ROM化されました。 AppManagerでマーケット/プレイバージョンを確認することで確認できます。
実際に別のデバイスを使用することにしましたが、そうでない場合はMarket/Playバージョンをアップグレードする方法を見つける必要があると思います。
同じエラーが発生し、携帯電話が機内モードになっていることに気付きました!接続が回復したら、行ってよかったです。
IabHelper.Java
Intent serviceIntent = new Intent("com.Android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.Android.vending");
アクションとpackageNameをIInAppBillingService.aidl
に正しく指定できない場合はエラーになります。
ソリューションを考え出しました。
以下の3つのステップを試してください。
この問題は通常、あるプロジェクトから別のプロジェクトにエイドルファイルをコピーするときに発生します。
これは、現在デバイスにログインしているアカウントがGoogle Developer Consoleに登録されていないためです。この問題を解決するには、1。Google Developer Consolにアクセスします。2. [アカウントの詳細]タブで、[テストアクセスのあるGmailアカウント]にメールアドレス(デバイス内)を入力し、上部の[保存]ボタンを押します。
それでおしまい。
私の場合、serviceIntent.setPackage( "com.Android.vending");に別の値を設定しました。 IabHelperから。この値のままにしておいてください