2015-01-24 8 views
6

Sto provando a realizzare una demo di inappr conto. Ho seguito questo tutorial per studiare questo.Errore InappBilling: è richiesta l'autenticazione. devi accedere al tuo account google

Lemme dire i passi che ho seguito per fare questo compito

  1. ho usato il codice qui sotto menzionato

    package com.ohn.inappbilling; 
    
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.support.v7.app.ActionBarActivity; 
    import android.util.Log; 
    import android.view.View; 
    import android.widget.Button; 
    
    import com.hello.inappbilling.util.IabHelper; 
    import com.hello.inappbilling.util.IabResult; 
    import com.hello.inappbilling.util.Inventory; 
    import com.hello.inappbilling.util.Purchase; 
    import com.ohn.inappbilling.R; 
    
    public class MainActivity extends ActionBarActivity { 
    
    private static final String TAG = "com.hello.inappbilling"; 
    static final String ITEM_SKU = "com.buttonclick"; 
    IabHelper mHelper; 
    private Button clickButton; 
    private Button buyButton; 
    
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_main); 
        buyButton = (Button) findViewById(R.id.buyButton); 
        clickButton = (Button) findViewById(R.id.clickButton); 
        clickButton.setEnabled(false); 
        String base64EncodedPublicKey = "******"; 
    
        mHelper = new IabHelper(this, base64EncodedPublicKey); 
    
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() { 
         public void onIabSetupFinished(IabResult result) { 
          if (!result.isSuccess()) { 
           Log.d(TAG, "In-app Billing setup failed: " + result); 
          } else { 
           Log.d(TAG, "In-app Billing is set up OK"); 
          } 
         } 
        }); 
        //throw new RuntimeException(); 
    } 
    
    public void buttonClicked(View view) { 
        clickButton.setEnabled(false); 
        buyButton.setEnabled(true); 
    } 
    
    public void buyClick(View view) { 
        mHelper.launchPurchaseFlow(this, ITEM_SKU, 10001, 
          mPurchaseFinishedListener, "mypurchasetoken"); 
    } 
    
    @Override 
    protected void onActivityResult(int requestCode, int resultCode, 
        Intent data) 
    { 
         if (!mHelper.handleActivityResult(requestCode, 
           resultCode, data)) {  
         super.onActivityResult(requestCode, resultCode, data); 
         } 
    } 
    
    IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener 
    = new IabHelper.OnIabPurchaseFinishedListener() { 
    public void onIabPurchaseFinished(IabResult result, 
           Purchase purchase) 
    { 
        if (result.isFailure()) { 
         // Handle error 
         return; 
    }  
    else if (purchase.getSku().equals(ITEM_SKU)) { 
        consumeItem(); 
        buyButton.setEnabled(false); 
    } 
    
    } 
    
    
    }; 
    
    public void consumeItem() { 
        mHelper.queryInventoryAsync(mReceivedInventoryListener); 
    } 
    
    IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener 
        = new IabHelper.QueryInventoryFinishedListener() { 
         public void onQueryInventoryFinished(IabResult result, 
          Inventory inventory) { 
    
    
          if (result.isFailure()) { 
          // Handle failure 
          } else { 
           mHelper.consumeAsync(inventory.getPurchase(ITEM_SKU), 
          mConsumeFinishedListener); 
          } 
        } 
    }; 
    
    IabHelper.OnConsumeFinishedListener mConsumeFinishedListener = 
    new IabHelper.OnConsumeFinishedListener() { 
    public void onConsumeFinished(Purchase purchase, 
         IabResult result) { 
    
    if (result.isSuccess()) {     
         clickButton.setEnabled(true); 
    } else { 
         // handle error 
    } 
    } 
    }; 
    
    @Override 
    public void onDestroy() { 
        super.onDestroy(); 
        if (mHelper != null) mHelper.dispose(); 
        mHelper = null; 
    } 
    
    } 
    
  2. ho creato apk utilizzando File-Export-AndroidProject e ha caricato questo in alphatesting.

  3. Ho aggiunto utenti (gruppo Google) in Gestire l'elenco di tester in test alfa.

  4. ho aggiunto il prodotto in prodotto in-app e dare ad esso id com.buttonclick

  5. In impostazioni in account Gmail con i test accesso Ho aggiunto Gmail id anche qui. Nessuno dell'ID è ID sviluppatore.

Qualcuno può dire soluzione per questo problema. Ho provato tutte le soluzioni disponibili su StackoverFlow.

+0

Non so se è correlato ma non ho mai potuto testare l'IAB senza l'account principale/primo impostato come tester, ho dovuto resettare il dispositivo e impostare l'account tester come account principale del dispositivo. – Hacketo

+0

significa che vuoi dire, cancello tutti gli account dal telefono, quindi aggiungo un singolo account per il test, giusto? –

risposta

0

Ho trovato la soluzione per questo problema.

ho pubblicato questo apk su playstore e poi ho scaricato apk da playstore e corsi che e ha funzionato bene

Penso che il motivo alla base di questo problema è l'account Google che stavo usando per il test potrebbe essere che non era l'account principale.

+0

Puoi spiegare cosa diresti con l'account principale? Quello del negozio di giochi? Diciamo che ho pubblicato l'alpha con l'account della mia azienda, [email protected], e l'ho scaricato con il mio account personale [email protected] (che è registrato nella lista degli utenti di test autorizzati sulla console di sviluppo). Bene, sto ricevendo quell'errore. Hai qualche suggerimento? Grazie ^^ – marino

0

ho trascorso quasi 2 settimane cercando di risolvere questo problema, ed ero così frustrato quando ho capito che in realtà non permetto alla beta testing:

enter image description here

Per abilitarla assicuratevi effettivamente spuntare la casella accanto al nome della lista.

Problemi correlati