From 4835a1dcfbbeb19e28965f796f03e79a58159980 Mon Sep 17 00:00:00 2001 From: Eskil Abrahamsen Blomfeldt Date: Tue, 9 Feb 2016 12:31:19 +0100 Subject: Android: Fix NullPointerException on Android 5+ The correct package name for the intent is supposed to be com.android.vending, as according to Google docs. Setting the wrong package name would trigger a NullPointerException which in turn would trigger a crash later, so this patch also adds more graceful error handling. Change-Id: If7192329a4d12e90b36148b15400cd29c6f1dc5f Task-number: QTBUG-50867 Reviewed-by: BogDan Vatra Reviewed-by: Kai Uwe Broulik Reviewed-by: Christian Stromme --- .../qtproject/qt5/android/purchasing/QtInAppPurchase.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java b/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java index 17fddf7..3ab3d70 100644 --- a/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java +++ b/src/android/src/org/qtproject/qt5/android/purchasing/QtInAppPurchase.java @@ -123,11 +123,16 @@ public class QtInAppPurchase { Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND"); - serviceIntent.setPackage("com.android.vending.billing"); - if (!m_context.getPackageManager().queryIntentServices(serviceIntent, 0).isEmpty()) { - m_context.bindService(serviceIntent, m_serviceConnection, Context.BIND_AUTO_CREATE); - } else { - Log.e(TAG, "No in-app billing service available."); + serviceIntent.setPackage("com.android.vending"); + try { + if (!m_context.getPackageManager().queryIntentServices(serviceIntent, 0).isEmpty()) { + m_context.bindService(serviceIntent, m_serviceConnection, Context.BIND_AUTO_CREATE); + } else { + Log.e(TAG, "No in-app billing service available."); + purchasedProductsQueried(m_nativePointer); + } + } catch (Exception e) { + Log.e(TAG, "Could not query InAppBillingService intent."); purchasedProductsQueried(m_nativePointer); } } -- cgit v1.2.3