OnIabPurchaseFinished nunca llamado.

He estado intentando configurar la facturación en la aplicación para mi primera aplicación, y he estado usando el sku android.test.purchased. La compra viene a través, y consigo conseguir el SKU en mi inventario, pero, como el título dice, onIabPurchaseFinished, nunca se llama.

Creo que puede tener algo que ver con este registro: "No se pudo guardar qué vista tiene foco porque la vista enfocada com.android.internal.policy.impl.PhoneWindow$DecorView@406743d0 no tiene id". Eso aparece, justo antes de ir a Google Play. No estoy muy seguro de lo que eso significa …

Compra de lanzamiento:

mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, ""); 

Y el oyente:

 IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { @Override public void onIabPurchaseFinished(IabResult result, Purchase info) { System.out.println("Purchase Finish heard something"); if (result.isFailure()) { Log.d(TAG, "Error purchasing: " + result); return; } else{ Log.d(TAG,"Success!"); } } }; 

Intente agregar esto a la actividad que llama a mHelper.launchPurchaseFlow(..) :

  @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { Log.d(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data); // Pass on the activity result to the helper for handling if (!mHelper.handleActivityResult(requestCode, resultCode, data)) { // not handled, so handle it ourselves (here's where you'd // perform any handling of activity results not related to in-app // billing... super.onActivityResult(requestCode, resultCode, data); } else { Log.d(TAG, "onActivityResult handled by IABUtil."); } } 

Acabo de descubrir otra cosa importante: el requestCode que se utiliza para iniciar el flujo de compra tiene que ser> = 0!

I used "new Random () nextInt ()" para generar un requestCode aleatorio, ya veces funcionaba, a veces no lo hacía. Ahora he encontrado en la siguiente documentación, que el requestCode no debe ser un número negativo:

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29

  • El servicio de facturación no está disponible en el dispositivo. (Respuesta: 3: Facturación no disponible)
  • Excepción de puntero nulo de compra de Android InApp
  • IAB Error Ya poseiste este artículo
  • Se requiere autenticación. Debe iniciar sesión en la cuenta de google play. En la facturación en la aplicación
  • No se puede cambiar la moneda predeterminada para la facturación en la aplicación
  • podemos probar la aplicación Android de compra en la aplicación a través del emulador de API de GOOGLE
  • Algo ha cambiado en las facturas en la aplicación en Android
  • Cambiar la aplicación de Android pagada gratis con la aplicación de facturación - abuelo de los clientes existentes
  • Android InApp Billing v3 - prueba con varios dispositivos
  • Facturación inapp android
  • Android en la aplicación robotmedia: Restaurar transacciones
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.