2013-04-08 14 views
18

Sto cercando di utilizzare in-app billing:IabResult: servizio di fatturazione non disponibile sul dispositivo. (Risposta: 3: fatturazione disponibile)

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

E ottenere l'errore:

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

Perché? Ho cercato di svuotare la cache del Play Store, non ha funzionato per me.

+0

domanda: dove si inizia tutto sull'IAB - in attività o in Applicazione? IAB 3.0 fornisce un esempio di codice con quella macchina, l'intero codice è in Attività, ma si dice anche che no. Attività. Dove fai le cose con il purche list ed ecc? – deadfish

risposta

2

Wipe mi ha aiutato. Strano errore

31

Bene, noi non possiamo aiutare, senza dover più information.So invece cercherò di fare una lista di controllo per voi in caso vi siete persi qualcosa:?

1) Stai provando su un emulatore servizi di fatturazione dovrebbero essere testato sui dispositivi, MA se devi fare un test sull'emulatore, assicurati che l'emulatore abbia installato e configurato Google Play. Questo è molto importante!

2) Hai impostato il permesso corretto nel manifest? (com.android.vending.BILLING)

3) Se stai ancora testando l'app, hai ottenuto una licenza per app di test dal playstore, hai importato lvl nel tuo sdk, hai impostato la libreria di verifica della licenza? (Potete seguire qui: setting up

4) sulla vostra attività onActivityResult hai fatto correttamente gestire il risultato di attività Come visto l'esempio di Google si dovrebbe fare in questo modo:?

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

anche avere più le informazioni potrebbero essere utili, ad esempio se stai eseguendo il test sull'emulatore o dispositivo, nome dispositivo, versione Android ecc.

+0

1. No, è un dispositivo reale con G. Riproduci installato 2. Sì 3. Sì, ho seguito tutte le istruzioni 4. La libreria non è riuscita a inizializzare, non ho provato ad andare oltre – arts777

6

Questo errore indica che ti stai connettendo al servizio di fatturazione in-app sul dispositivo, ma che il il servizio non supporta IAB versione 3. È possibile che la versione di Google Play del tuo dispositivo supporti solo la versione 2 di IAB. Quale versione di Google Play è in esecuzione sul tuo dispositivo?

La tua versione di Google Play è altrimenti funzionale (ad es. Puoi aprire Google Play Store)? A volte, se la data del tuo dispositivo è disattivata o se ci sono altri problemi, Google Play stesso può andare a sud.

Infine, cosa c'è nell'output del logcat? Sarebbe più semplice fornire assistenza se fornissi maggiori dettagli.

+0

Ho cancellato il dispositivo e funziona bene ora. È molto strano – arts777

+0

Se Google Play era effettivamente danneggiato, potrebbe averlo risolto. Un'azione meno estrema sarebbe stata quella di disinstallare tutti gli aggiornamenti per l'applicazione Google Play e quindi consentire loro di reinstallare, anche se potrebbe aver funzionato o meno. – Carl

1

Aveva lo stesso problema.

Il mio dispositivo era rooted e ROM'ed con una versione precedente di Google Market che non si aggiornava automaticamente. Puoi verificare la tua versione Market/Play guardandola in AppManager.

In realtà ho deciso di utilizzare un altro dispositivo, ma suppongo che altrimenti dovrei trovare un modo per aggiornare la versione Market/Play.

4

Ho ricevuto quell'errore quando ho installato l'app PRIMA di aver registrato tutto e impostato Google Play Store. Una volta impostato l'account Google Play Store, l'errore è andato via.

3

La documentazione per la versione 2.0 della fatturazione era effettivamente più utile di 3.0 per questo anche se sto usando la versione 3.0 della fatturazione.

Ecco come lo descrive 2.0 Codice Risposta 3:

Indicates that In-app Billing is not available because the API_VERSION that you specified is not recognized by the Google Play application or the user is ineligible for in-app billing (for example, the user resides in a country that prohibits in-app purchases).

Per quanto mi riguarda ho dovuto impostare un account Google di prova sul mio telefono prima prima del test. Ho dimenticato quel passaggio. Una volta ho fatto quello fissato per me ...

cercare codici di risposta del server qui:

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

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

+0

Esiste comunque un controllo sulle chiamate che verranno visualizzate all'utente per assicurarsi che un account sia registrato con Google Play? So che probabilmente questo è eccessivo dato che il dispositivo deve disporre di un account per poter scaricare l'app, ma sarebbe opportuno disporre di un controllo adeguato per gestire l'errore e visualizzarlo all'utente anziché semplicemente bloccarsi? –

0

Questo perché l'account che è attualmente connesso nel dispositivo non è registrato nella Google Developer Console. PER RISOLVERE IL PROBLEMA, 1. Vai al tuo Google Developer Console 2. Nella scheda Dettagli account, inserisci l'indirizzo email (che si trova nel dispositivo) in "Account Gmail con accesso di prova" e premi il pulsante Salva in alto.

Questo è tutto.

1

Ho ricevuto questo errore cancellando la cache di Google Play. Devi riaprire l'app Google Play e accettare i termini prima che siano nuovamente funzionanti per IAB.

3

Ho trovato un problema da risolvere, prova root con ur LuckyPatcher, apri la configura -> Disattiva fatturazione.

enter image description here

0

Nel mio caso ho impostato un valore diverso per serviceIntent.setPackage ("com.android.vending"); da IabHelper. Assicurati di lasciarlo con questo valore

0

Ho avuto lo stesso errore e ho notato che il mio telefono era in modalità aereo! Una volta ripristinata la connettività, ero a posto.

0

IabHelper.java

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

E 'un errore se non è possibile specificare correttamente l'azione e packageName a IInAppBillingService.aidl.

1

Ho avuto esattamente questo errore quando ho rimosso tutti gli account Google dal telefono (quindi cancellare le correzioni perché dopo aver cancellato probabilmente si imposta un account dopo il riavvio del telefono).

Dopo aver aggiunto un account non ho visto questo errore.

Problema correlato What are the possibilities to get this error code 3 in InApp purchase?.

0

Sono venuti con la soluzione.

Provare le sottostanti 3 passi:

  1. Cancellare la cache di GooglePlay app e servizi Google Play app.
  2. Rimuovere il file IInAppBillingService.aidl.
  3. Copia il file sopra di nuovo dalla cartella sdk e incollalo nella cartella aidl nella mia app.

Questo problema si verifica in genere quando si copia il file aidl da un progetto a un altro progetto.

Problemi correlati