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.
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..
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.
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.
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
j'ai trouvé un problème à corriger, essayer root avec ur LuckyPatcher, ouvrir la config Toggles -> désactiver la facturation.
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? .
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.
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.
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.
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
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.
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
.
Ont trouvé la solution.
essayez les 3 étapes ci-dessous:
- effacer la cache de GooglePlay app et Google Play Services app.
- Supprimer IInAppBillingService.dossier aidl.
- 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.