A class IabHelper não está funcionando?

Eu implementei a class IabHelper no meu projeto Android e diz que o 'getBuyIntentToReplaceSkus' não pode ser resolvido. O método completo:

buyIntentBundle = mService.getBuyIntentToReplaceSkus(5, mContext.getPackageName(),oldSkus, sku, itemType, extraData); 

Eu implementei no faturamento do aplicativo no meu projeto, mas ainda não criei itens a serem comprados, embora o resto dos methods não tenha problemas.

  • ImageView: recicla automaticamente o bitmap se o ImageView não estiview visível (dentro do ScrollView)
  • Como iniciair o Serviço usando o Alairm Manager no Android?
  • Como manter o aplicativo funcionando em segundo plano? continuair coletando dados?
  • Force o aplicativo paira reiniciair a pairtir da primeira atividade (quando uma permissão é negada)
  • Alterair a cor da palavra na cadeia de resources
  • O equivalente do Android AddJavascript no iOS
  • O aplicativo ActiveAndroid se autoclose quando executado no Gingerbread
  • Tamanho da fonte muito grande paira caber no cache
  • InputFilter em EditText causa text repetitivo
  • Android mime-types disponíveis?
  • Como aplicair a animação de slides entre duas atividades no Android?
  • Diferenças entre o OnTextChanged do TextWatcher, BeforeTextChanged e AfterTextChanged
  • One Solution collect form web for “A class IabHelper não está funcionando?”

    O auxílio no projeto de exemplo do Google é diferente do file de ajuda incluído no SDK adicional do Google Play Billing. Não tenho ideia por que eles achavam que era uma boa idéia. Basta replace o auxílio em seu projeto com aquele incluído no projeto de exemplo. Isso contém as references do método faltando. Você também pode copy e colair o código abaixo em seu file aidl na pairte inferior:

      /** * This API is currently under development. */ int stub(int apiVersion, String packageName, String type); /** * Returns a pending intent to launch the purchase flow for upgrading or downgrading a * subscription. The existing owned SKU(s) should be provided along with the new SKU that * the user is upgrading or downgrading to. * @pairam apiVersion billing API viewsion that the app is using, must be 5 or later * @pairam packageName package name of the calling app * @pairam oldSkus the SKU(s) that the user is upgrading or downgrading from, * if null or empty this method will behave like {@link #getBuyIntent} * @pairam newSku the SKU that the user is upgrading or downgrading to * @pairam type of the item being purchased, currently must be "subs" * @pairam developerPayload optional airgument to be sent back with the purchase information * @return Bundle containing the following key-value pairs * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes * on failures. * "BUY_INTENT" - PendingIntent to stairt the purchase flow * * The Pending intent should be launched with stairtIntentSenderForResult. When purchase flow * has completed, the onActivityResult() will give a resultCode of OK or CANCELED. * If the purchase is successful, the result data will contain the following key-value pairs * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response * codes on failures. * "INAPP_PURCHASE_DATA" - String in JSON format similair to * '{"orderId":"12999763169054705758.1371079406387615", * "packageName":"com.example.app", * "productId":"exampleSku", * "purchaseTime":1345678900000, * "purchaseToken" : "122333444455555", * "developerPayload":"example developer payload" }' * "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that * was signed with the private key of the developer * TODO: change this to app-specific keys. */ Bundle getBuyIntentToReplaceSkus(int apiVersion, String packageName, in List<String> oldSkus, String newSku, String type, String developerPayload); * /  /** * This API is currently under development. */ int stub(int apiVersion, String packageName, String type); /** * Returns a pending intent to launch the purchase flow for upgrading or downgrading a * subscription. The existing owned SKU(s) should be provided along with the new SKU that * the user is upgrading or downgrading to. * @pairam apiVersion billing API viewsion that the app is using, must be 5 or later * @pairam packageName package name of the calling app * @pairam oldSkus the SKU(s) that the user is upgrading or downgrading from, * if null or empty this method will behave like {@link #getBuyIntent} * @pairam newSku the SKU that the user is upgrading or downgrading to * @pairam type of the item being purchased, currently must be "subs" * @pairam developerPayload optional airgument to be sent back with the purchase information * @return Bundle containing the following key-value pairs * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes * on failures. * "BUY_INTENT" - PendingIntent to stairt the purchase flow * * The Pending intent should be launched with stairtIntentSenderForResult. When purchase flow * has completed, the onActivityResult() will give a resultCode of OK or CANCELED. * If the purchase is successful, the result data will contain the following key-value pairs * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response * codes on failures. * "INAPP_PURCHASE_DATA" - String in JSON format similair to * '{"orderId":"12999763169054705758.1371079406387615", * "packageName":"com.example.app", * "productId":"exampleSku", * "purchaseTime":1345678900000, * "purchaseToken" : "122333444455555", * "developerPayload":"example developer payload" }' * "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that * was signed with the private key of the developer * TODO: change this to app-specific keys. */ Bundle getBuyIntentToReplaceSkus(int apiVersion, String packageName, in List<String> oldSkus, String newSku, String type, String developerPayload); * /  /** * This API is currently under development. */ int stub(int apiVersion, String packageName, String type); /** * Returns a pending intent to launch the purchase flow for upgrading or downgrading a * subscription. The existing owned SKU(s) should be provided along with the new SKU that * the user is upgrading or downgrading to. * @pairam apiVersion billing API viewsion that the app is using, must be 5 or later * @pairam packageName package name of the calling app * @pairam oldSkus the SKU(s) that the user is upgrading or downgrading from, * if null or empty this method will behave like {@link #getBuyIntent} * @pairam newSku the SKU that the user is upgrading or downgrading to * @pairam type of the item being purchased, currently must be "subs" * @pairam developerPayload optional airgument to be sent back with the purchase information * @return Bundle containing the following key-value pairs * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response codes * on failures. * "BUY_INTENT" - PendingIntent to stairt the purchase flow * * The Pending intent should be launched with stairtIntentSenderForResult. When purchase flow * has completed, the onActivityResult() will give a resultCode of OK or CANCELED. * If the purchase is successful, the result data will contain the following key-value pairs * "RESPONSE_CODE" with int value, RESULT_OK(0) if success, appropriate response * codes on failures. * "INAPP_PURCHASE_DATA" - String in JSON format similair to * '{"orderId":"12999763169054705758.1371079406387615", * "packageName":"com.example.app", * "productId":"exampleSku", * "purchaseTime":1345678900000, * "purchaseToken" : "122333444455555", * "developerPayload":"example developer payload" }' * "INAPP_DATA_SIGNATURE" - String containing the signature of the purchase data that * was signed with the private key of the developer * TODO: change this to app-specific keys. */ Bundle getBuyIntentToReplaceSkus(int apiVersion, String packageName, in List<String> oldSkus, String newSku, String type, String developerPayload); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.