I recently ran into this problem. As Bona Fide wrote, the package declaration in the IInAppBillingService.aidl file must be set to "com.android.vending.billing", and the helpl file must be found inside the corresponding directory using Explorer. Also (and this was the problem in my case), in IabHelper.java, the string parameter for serviceIntent should be the same as the package name containing the IInAppBillingService.aidl file.
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");// correct package name: com.android.vending.billing serviceIntent.setPackage("com.android.vending"); List<ResolveInfo> intentServices = mContext.getPackageManager().queryIntentServices(serviceIntent, 0); if (intentServices != null && !intentServices.isEmpty()) { // service available to handle that Intent mContext.bindService(serviceIntent, mServiceConn, Context.BIND_AUTO_CREATE); } else { // no service available to handle that Intent if (listener != null) { listener.onIabSetupFinished( new IabResult(BILLING_RESPONSE_RESULT_BILLING_UNAVAILABLE, "Billing service unavailable on device.")); } } }
source share