Android Dans App Billing NullPointerException sur Android 8.0

voix
0

J'ai reçu de plainte Android 8.0 utilisateurs après avoir effectué le paiement, mon accident d'application. Ils ne peuvent pas recevoir l'article acheté. Ma facturation app utilise le code de TrivialDrive (AIDL). Il fonctionne bien sur d'autres versions d'Android. Voici le rapport de l'accident:

java.lang.NullPointerException: 
  at .ConceptActivity$12.a (ConceptActivity.java:9)
  at .inappbilling.util.IabHelper$2$1.run (IabHelper.java:8)
  at android.os.Handler.handleCallback (Handler.java:790)
  at android.os.Handler.dispatchMessage (Handler.java:99)
  at android.os.Looper.loop (Looper.java:164)
  at android.app.ActivityThread.main (ActivityThread.java:6501)
  at java.lang.reflect.Method.invoke (Method.java)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:438)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:807)

Ma IabHelpera été appelé onCreate.

String base64EncodedPublicKey = 
                                       <license key here>;

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

C'est le mon achat Listener Fini:

IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener
            = new IabHelper.OnIabPurchaseFinishedListener() {
        public void onIabPurchaseFinished(IabResult result,
                                          Purchase purchase)
        {
            if (result.isFailure()) {
                checkItem();
                return;
            }
            else if (purchase.getSku().equals(ITEM_SKU)) {
                removeAds();
            }

        }
    };

Et mon inventaire de requête fini:

public void checkItem() {
        mHelper.queryInventoryAsync(mReceivedInventoryListener);
    }

    IabHelper.QueryInventoryFinishedListener mReceivedInventoryListener
            = new IabHelper.QueryInventoryFinishedListener() {
        public void onQueryInventoryFinished(IabResult result,
                                             Inventory inventory) {

            if (mHelper == null) return;
            Purchase purchase = inventory.getPurchase(ITEM_SKU);
            if (purchase != null) {
                removeAds();
            }
        }
    };
Créé 02/09/2018 à 05:26
source utilisateur
Dans d'autres langues...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more