AndroidBillingLibrary: Servicio remoto se bloqueó en BillingController.requestPurchase

Estoy desarrollando una aplicación que tendrá algunas características que el usuario debe pagar para usar. El usuario puede comprar en cada actividad haciendo clic en el botón. Para ello, utilizo la facturación en aplicaciones Android y el robotmedia / AndroidBillingLibrary. Todo parece funcionar bien en mis dispositivos: HTC Wildfire S (Android 2.3.5) y Asus Transformer Pad (Android 4.1.1), pero tengo información (con captura de registro) que a veces en otros dispositivos después de hacer clic en botón de compra no pasa nada. Los dispositivos:

  • Samsung Galaxy ACE (Android 2.3.5)
  • HTC Sensation (Andorid 4.0.3)
  • Xperia Neo V (Android 2.3.4)

Aquí está la captura de registro:

11-30 15:05:16.157: D/Parent Activity:(30220): Request Purchase: myitem 11-30 15:05:16.177: W/BillingService(30220): Remote billing service crashed 11-30 15:05:16.177: W/BillingService(30220): Caused by: null 

Esto es parte del código de mi Actividad:

 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); (...) initViews(); initBilling(); } @Override protected void onDestroy() { BillingController.unregisterObserver(mBillingObserver); (...) super.onDestroy(); } private void initBilling() { mBillingObserver = new BillingObserver(this); BillingController.registerObserver(mBillingObserver); BillingController.setConfiguration(new BillingConfiguration()); BillingController.checkBillingSupported(getApplicationContext()); if (!mBillingObserver.isTransactionsRestored()) { BillingController.restoreTransactions(getApplicationContext()); } Settings.updateOwnedItems(this); } private void showPurchaseAlert() { if(Settings.isOnline() && BillingController.checkBillingSupported(this) == BillingStatus.SUPPORTED) { (...) ((Button) alertRoot.findViewById(R.id.alert_billing_yes)) .setOnClickListener(new OnClickListener() { public void onClick(View v) { requestPurchase(BillingElement.CATALOG[number].sku); alert.cancel(); } }); } else { (...) //Purchase Alert Invisible } } public void requestPurchase(String itemId) { Log.d("Parent Activity:", "Request Purchase: "+itemId); BillingController.requestPurchase(getApplicationContext(), itemId, true, null); } 

En este código siempre compruebo si un dispositivo está en línea y si se admite la Facturación en la aplicación. Parece que IMarketBillingService de Google In-App Billing lanza RemoteException y se captura en robotmedia / AndroidBillingLibrary en la clase BillingService:

 private void runRequest(BillingRequest request){ try { long requestId = request.run(mService); BillingController.onRequestSent(requestId, request); } catch (RemoteException e) { Log.w(this.getClass().getSimpleName(), "Remote billing service crashed"); Log.w(this.getClass().getSimpleName(), "Caused by: "+e.getCause()); // TODO: Retry? } } 

¿Puede alguien explicarme por qué se lanza RemoteException? ¿Y cómo manejarlo? He hecho muchas pruebas pero en mis dispositivos la facturación en la aplicación siempre funciona correctamente. Lo que es más interesante en estos dispositivos donde se dispara RemoteException, sólo sucede a veces.

One Solution collect form web for “AndroidBillingLibrary: Servicio remoto se bloqueó en BillingController.requestPurchase”

Es un error en la implementación robotmedias, sólo tienes que volver a vincular el servicio a tu actividad.

Hpique lo arregló (y algunos otros errores) en su tenedor: https://github.com/hpique/AndroidBillingLibrary/commit/a62593764172d0fd650b1dca1d15c59e79aecd49

Echa un vistazo a https://github.com/hpique/AndroidBillingLibrary

  • Cómo llamar a la actividad nativa de la actividad java?
  • Http: // un enlace href que no funciona en Android
  • Inhabilitar la visualización de la ventana de ejecución en IntelliJ
  • Errores de json-parsing en tiempo de ejecución
  • Twitter4j: Obtener la lista de respuestas para un determinado tweet
  • ¿Cómo puedo obtener el nombre del paquete en android?
  • Cambiar el color del tema en Runtime en Android
  • Autenticación de Facebook en Webview
  • Caracteres Unicode para Hindi en android
  • API de Finanzas para Android
  • Volley NoConnectionError: tlsv1 alert fallback inapropiado
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.