web-dev-qa-db-fra.com

IabResult: service de facturation indisponible sur l'appareil. (réponse: 3: facturation non disponible)

J'essaie d'utiliser la facturation intégrée à l'application:

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);
                }
            }
        });

Et avoir l'erreur:

Problem setting up In-app Billing: IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)

Pourquoi? J'ai essayé de vider le cache du Play Store, mais ça n'a pas fonctionné pour moi.

20
arts777

Essuyer m'a aidé. Erreur étrange.

2
arts777

Eh bien, nous ne pouvons pas vous aider sans avoir beaucoup d’informations. Je vais donc essayer de vous présenter une liste de contrôle si vous avez oublié quelque chose:

1) Testez-vous sur un émulateur? Les services de facturation doivent être testés sur des appareils, MAIS si vous devez tester sur l’émulateur, assurez-vous que Google Play est installé et configuré. C’est très important!

2) Avez-vous défini la permission correcte dans le manifeste? (com.Android.vending.BILLING)

3) Si vous testez encore l’application, avez-vous obtenu une licence d’application test du magasin de jeu, importé le lvl dans votre sdk, configuré votre bibliothèque de vérification de licence? (vous pouvez suivre ici: montage

4) Sur votre activité surActivityResult, avez-vous géré correctement le résultat de l'activité? Comme vous pouvez le voir sur l'exemple de Google, procédez comme suit:

@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.");
}
}

Il peut également être utile de disposer de plus d’informations, par exemple si vous testez sur l’émulateur ou le périphérique, le nom du périphérique, la version d’Android, etc.

36
sokie

Cette erreur indique que vous vous connectez au service de facturation intégré à votre appareil, mais que ce service ne prend pas en charge la version 3 d'IAB. Il est possible que la version de Google Play de votre appareil ne prenne en charge que la version 2 de IAB. Quelle version de Google Play est en cours d'exécution sur votre appareil?

Votre version de Google Play est-elle par ailleurs fonctionnelle (vous pouvez par exemple ouvrir le Google Play Store)? Parfois, si la date de votre appareil est éteinte ou s'il y a un autre problème, Google Play peut aller au sud.

Enfin, que contient votre sortie logcat? Il serait plus facile de vous aider si vous fournissiez plus de détails.

6
Carl

J'ai eu cette erreur lorsque j'ai installé l'application AVANT d'avoir tout enregistré et configuré Google Play Store. Une fois le compte Google Play Store créé, l'erreur a disparu.

4
Gene

La documentation pour la version 2.0 de la facturation était en réalité plus utile que la version 3.0 pour celle-ci même si j'utilise la version 3.0 de la facturation.

Voici comment 2.0 le décrit Code de réponse 3:

Indique que la facturation intégrée n'est pas disponible car API_VERSION l'application que vous avez spécifiée n'est pas reconnue par l'application Google Play ou l'utilisateur n'est pas éligible pour la facturation intégrée à l'application (par exemple, l'utilisateur réside dans un pays qui l'interdit -app achats).

Pour moi, je devais d'abord configurer un compte Google test sur mon téléphone avant de tester. J'ai oublié cette étape. Une fois que j'ai fait ça corrigé pour moi ...

Recherchez les codes de réponse du serveur ici:

http://developer.Android.com/google/play/billing/v2/billing_reference.html

http://developer.Android.com/google/play/billing/billing_reference.html

3
Nathan Prather

J'ai trouvé un problème à résoudre, essayez root avec ur LuckyPatcher, ouvrez la configuration Bascule -> Désactivez la facturation.

enter image description here

3
KingRider

J'ai eu exactement cette erreur lorsque j'ai supprimé tous les comptes Google du téléphone (effacez donc les correctifs, car après l'effacement, vous avez probablement configuré un compte après le redémarrage du téléphone).

Après avoir ajouté un compte, je n'ai pas vu cette erreur.

Problème associé Quelles sont les possibilités d'obtenir ce code d'erreur 3 lors de l'achat InApp? .

2
Marian Paździoch

J'ai eu cette erreur en effaçant le cache de Google Play. Vous devez rouvrir l'application Google Play et en accepter les conditions avant qu'elle ne redevienne opérationnelle pour IAB.

1
Lee

Avait le même problème.

Mon appareil était connecté à une racine et à une version plus ancienne de Google Market qui ne se mettait pas à jour automatiquement. Vous pouvez vérifier votre version de Market/Play en la consultant dans AppManager.

J'ai en fait décidé d'utiliser un autre appareil, mais je suppose que sinon, je devrais trouver un moyen de mettre à niveau la version Market/Play.

1
Doigen

J'ai eu la même erreur et puis j'ai remarqué que mon téléphone était en mode avion! Une fois la connectivité rétablie, j'étais prêt à partir.

0
Papasmile

IabHelper.Java

Intent serviceIntent = new Intent("com.Android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.Android.vending");

C'est une erreur s'il n'est pas possible de spécifier correctement l'action et le nom du paquet à IInAppBillingService.aidl.

0
Hashido Tomoya

Ont trouvé la solution.

Essayez les 3 étapes ci-dessous:

  1. Effacez le cache de l'application GooglePlay et des services Google Play.
  2. Supprimez le fichier IInAppBillingService.aidl.
  3. Copiez le fichier ci-dessus à partir du dossier sdk et collez-le dans le dossier aidl de mon application.

Ce problème se produit généralement lorsque nous copions le fichier aidl d’un projet à un autre.

0
Ankur Yadav

En effet, le compte actuellement connecté au périphérique n'est pas enregistré dans la console développeur de Google. Pour résoudre ce problème, 1. Accédez à votre Consol développeur Google 2. Dans l'onglet Détails du compte, entrez l'adresse e-mail (qui est dans l'appareil) dans "Comptes Gmail avec accès de test" et appuyez sur le bouton d'enregistrement en haut.

C'est tout.

0
Yasir Ali

Dans mon cas, j'ai défini une valeur différente pour serviceIntent.setPackage ("com.Android.vending"); de IabHelper. Assurez-vous de le laisser avec cette valeur

0
Alex