Класс IabHelper не работает?

Я реализовал класс IabHelper в своем проекте Android, и он говорит, что "getBuyIntentToReplaceSkus" не может быть разрешен. Полный метод:

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

Я реализовал в приложении биллинг в моем проекте, но я еще не создал никаких предметов, которые нужно приобрести, хотя остальные методы не имеют проблем.

Ответы

Ответ 1

В примере с примером Google в отличие от файла helpl, включенного в дополнительный SDK "Google Play Billing". Я понятия не имею, почему они думали, что это хорошая идея. Просто замените helpl в своем проекте тем, который включен в примерный проект. Это содержит недостающие ссылки метода. Вы также можете скопировать и вставить приведенный ниже код в свой файл helpl внизу:

    /**
 * 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.
 * @param apiVersion billing API version that the app is using, must be 5 or later
 * @param packageName package name of the calling app
 * @param oldSkus the SKU(s) that the user is upgrading or downgrading from,
 *        if null or empty this method will behave like {@link #getBuyIntent}
 * @param newSku the SKU that the user is upgrading or downgrading to
 * @param type of the item being purchased, currently must be "subs"
 * @param developerPayload optional argument 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 start the purchase flow
 *
 * The Pending intent should be launched with startIntentSenderForResult. 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 similar 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);