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

j'essaie d'utiliser la facturation In-App:

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 obtenir l'erreur:

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

pourquoi? J'ai essayé de vider la cache du magasin de jeux, ça n'a pas marché pour moi.

20
demandé sur arts777 2013-04-09 01:38:22

14 réponses

Eh bien, nous ne pouvons pas vous aider sans avoir beaucoup d'informations.Au lieu de cela, je vais essayer de faire une liste de contrôle pour vous incase vous avez manqué quelque chose:

1) testez-vous un émulateur?Les services de facturation devraient être testés sur les appareils, mais si vous vraiment à tester sur émulateur,assurez-vous que l'émulateur a google play installé et configuré.C'est très important!

2) Avez-vous placé la permission correcte dans le manifeste? (COM.Android.distributeur.FACTURATION)

3) Si vous êtes encore en train de tester l'application,Avez-vous obtenu une licence d'application test de la playstore,importé la lvl dans votre sdk,mis en place votre bibliothèque de vérification de licence? (vous pouvez suivre ici: mise en place

4) sur votre activité onActivityResult avez-vous correctement traité le résultat de l'activité?Comme vu sur l'exemple de google, vous devriez le faire de cette façon:

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

ayant également plus d'informations pourrait être utile, comme si vous testez sur l'émulateur ou l'appareil, le nom de l'appareil, la version android, etc..

36
répondu sokie 2016-11-02 14:25:48

cette erreur indique que vous vous connectez au service de facturation In-app sur votre appareil, mais que le service ne supporte pas la version 3 D'IAB. Il se peut que la version de Google Play de votre appareil ne supporte que la version 2 d'IAB. Quelle version de Google Play fonctionne sur votre appareil?

votre version de Google Play est-elle fonctionnelle (par exemple, Pouvez-vous ouvrir le Google Play store)? Parfois, si la date sur votre appareil est désactivé, ou il ya un autre problème, Google Play lui-même peut aller vers le Sud.

enfin, qu'est-ce qu'il y a dans votre logcat? Il serait plus facile de fournir de l'aide si vous fournissiez plus de détails.

6
répondu Carl 2013-04-12 11:42:21

j'ai eu cette erreur lorsque j'ai installé L'application avant d'enregistrer tout et de configurer Google Play store up. Une fois que J'ai configuré le compte Google Play Store, l'erreur a disparu.

4
répondu Gene 2013-07-21 13:10:22

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

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

indique que la facturation In-app n'est pas disponible car API_VERSION que vous avez spécifié n'est pas reconnu par L'application Google Play ou l'utilisateur est inadmissible pour la facturation In-app (par exemple, l'utilisateur réside dans un pays qui interdit les achats in-app).

pour moi, j'ai dû configurer un compte Google test sur mon téléphone d'abord avant de tester. J'ai oublié cette étape. Une fois que j'ai fait ça, je l'ai réparé 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
répondu Nathan Prather 2014-01-20 18:21:37

j'ai trouvé un problème à corriger, essayer root avec ur LuckyPatcher, ouvrir la config Toggles -> désactiver la facturation.

enter image description here

3
répondu KingRider 2015-06-28 01:01:38

Wipe m'a aidé. Étrange erreur.

2
répondu arts777 2013-04-12 14:44:53

j'ai eu exactement cette erreur lorsque j'ai retiré tous les comptes Google de téléphone (donc effacer les corrections parce qu'après effacer vous avez probablement mis en place un compte après téléphone redémarré).

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

question connexe quelles sont les possibilités d'obtenir ce code d'erreur 3 dans l'achat InApp? .

2
répondu Marian Paździoch 2017-05-23 12:02:00

Avait le même problème.

mon appareil a été enraciné et ROM'EED avec une version plus ancienne de Google Market qui ne s'est pas mis à jour. Vous pouvez vérifier votre version The Market / Play en la regardant dans L'AppManager.

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

1
répondu Doigen 2013-07-02 10:07:13

j'ai eu cette erreur en essuyant le cache Google Play. Vous devez rouvrir L'application Google Play et accepter les conditions avant qu'elle ne soit fonctionnelle pour IAB à nouveau.

1
répondu Lee 2014-07-09 15:02:43

C'est parce que le compte qui est actuellement connecté à l'appareil n'est pas enregistré dans Google Developer Console. POUR résoudre ce problème, 1. Aller à votre Google Developer Consol 2. Dans L'onglet Détails du compte, entrez l'adresse e-mail(qui se trouve dans le périphérique) dans "comptes Gmail avec accès testing" et appuyez sur le bouton Enregistrer en haut.

C'est ça.

0
répondu Yasir Ali 2014-02-22 14:16:21

dans mon cas, j'ai fixé une valeur différente pour le service.setPackage ("com.Android.distributeur"); à partir de IabHelper. Assurez-vous de le laisser avec cette valeur

0
répondu Alex 2015-07-29 17:21:28

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

0
répondu Papasmile 2016-02-07 01:02:23

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 packageName IInAppBillingService.aidl .

0
répondu Tomoya Hashido 2016-02-08 11:11:48

Ont trouvé la solution.

essayez les 3 étapes ci-dessous:

  1. effacer la cache de GooglePlay app et Google Play Services app.
  2. Supprimer IInAppBillingService.dossier aidl.
  3. copier le fichier ci-dessus à nouveau à partir du dossier sdk et le coller dans le dossier aidl dans mon application.

ce problème survient habituellement lorsque nous copions le fichier aidl d'un projet à un autre. projet.

0
répondu Ankur Yadav 2016-05-22 14:10:37