IabResult: служба выставления счетов недоступна на устройстве. (ответ: 3: выставление счетов недоступно)
Я пытаюсь использовать биллинг в приложении:
mIabHelper = new IabHelper(this, BILLING_KEY);
mIabHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
@Override
public void onIabSetupFinished(IabResult result) {
if (!result.isSuccess()) {
Log.d(TAG, "Problem setting up In-app Billing: " + result);
}
}
});
и получаю ошибку:
Problem setting up In-app Billing: IabResult: Billing service unavailable on device. (response: 3:Billing Unavailable)
почему? Пытался очистить кэш Play Store, не работал для меня.
14 ответов
Ну, мы не можем помочь вам, не имея много информации.Поэтому вместо этого я попытаюсь сделать контрольный список для вас, если вы что-то пропустили:
1)вы тестируете на эмуляторе?Услуги биллинга должны быть протестированы на устройствах, но если вы действительно нужно протестировать эмулятор, убедитесь, что в эмуляторе установлен и настроен google play.Это очень важно!
2) вы установили правильное разрешение в манифесте? (com.андроид.продажа.Выставление счетов)
3)Если вы не все еще тестируя приложение, вы получили лицензию на тестовое приложение из playstore, импортировали lvl в sdk, создали библиотеку проверки лицензии? (вы можете следить здесь:настройка
4) в вашей активности onActivityResult вы правильно обработали результат активности?Как видно на примере из google, вы должны сделать это следующим образом:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.i(TAG, "onActivityResult(" + requestCode + "," + resultCode + "," + data);
// Pass on the activity result to the helper for handling
if (!inappBillingHelper.handleActivityResult(requestCode, resultCode, data)) {
super.onActivityResult(requestCode, resultCode, data);
}
else {
Log.i(TAG, "onActivityResult handled by IABUtil.");
}
}
также может быть полезной дополнительная информация, например, если вы тестируете эмулятор или устройство, устройство имя, версия Андроида etc..
эта ошибка указывает, что вы подключаетесь к службе выставления счетов в приложении на вашем устройстве, но эта служба не поддерживает IAB версии 3. Возможно, версия Google Play вашего устройства поддерживает только версию 2 IAB. Какая версия Google Play работает на вашем устройстве?
является ли ваша версия Google Play в противном случае функциональной (например, вы можете открыть Google Play store)? Иногда, если дата на вашем устройстве выключена, или есть какая-то другая проблема, Google Play сама может пойти на юг.
наконец, что в вашем выходе logcat? Было бы легче оказать помощь, если бы вы предоставили более подробную информацию.
Я получил эту ошибку, когда я установил приложение, прежде чем я зарегистрировал все и установил Google Play store. Как только я установил учетную запись Google Play Store, ошибка исчезла.
документация для версии 2.0 биллинга была на самом деле более полезной, чем 3.0 для этого, хотя я использую версию 3.0 биллинга.
вот как 2.0 описывает его код ответа 3:
указывает, что биллинг в приложении недоступен, поскольку API_VERSION то, что вы указали, не распознается приложением Google Play или пользователь не имеет права на биллинг в приложении (например, пользователь проживает в стране, которая запрещает покупки в приложении).
для меня мне пришлось сначала настроить тестовую учетную запись Google на моем телефоне перед тестированием. Я забыл этот шаг. Как только я сделал это, это исправило это для меня...
ищите коды ответа сервера здесь:
http://developer.android.com/google/play/billing/v2/billing_reference.html
http://developer.android.com/google/play/billing/billing_reference.html
Я нашел проблему, чтобы исправить, попробуйте root с ur LuckyPatcher, откройте config переключатели - > отключить биллинг.
У меня была именно эта ошибка, когда я удалил все учетные записи Google с телефона (таким образом, стереть исправления, потому что после очистки вы, вероятно, создали учетную запись после перезагрузки телефона).
после добавления учетной записи я не видел эту ошибку.
связанный с этим вопрос каковы возможности получить этот код ошибки 3 в iNAPP purchase?.
была та же проблема.
мое устройство было укоренено и ПЗУ с более старой версией Google Market, которая не обновлялась самостоятельно. Вы можете проверить свою версию Market / Play, посмотрев на нее в AppManager.
Я на самом деле решил использовать другое устройство, но я думаю, что в противном случае мне придется найти способ обновить версию Market/Play.
Я получил эту ошибку от очистки кэша Google Play. Вы должны снова открыть приложение Google Play и принять условия, прежде чем оно снова будет работать для IAB.
Это потому, что учетная запись, которая в настоящее время зарегистрирована в устройстве, не зарегистрирована в консоли разработчика Google. Чтобы решить эту проблему, 1. Перейдите в консоль разработчика Google 2. На вкладке Сведения об учетной записи введите адрес электронной почты (который находится в устройстве) в "учетные записи Gmail с тестовым доступом" и нажмите кнопку Сохранить вверху.
вот и все.
в моем случае я установил другое значение для serviceIntent.setPackage("com по.андроид.вендинг"); от IabHelper. Убедитесь, что вы оставили его с этим значением
У меня была та же ошибка, а потом заметила, что мой телефон был в режиме самолета! Как только связь была восстановлена, я был готов идти.
IabHelper.java
Intent serviceIntent = new Intent("com.android.vending.billing.InAppBillingService.BIND");
serviceIntent.setPackage("com.android.vending");
это ошибка, если невозможно правильно указать действие и имя пакета в IInAppBillingService.aidl
.
придумали решение.
попробуйте следующие 3 шага:
- очистите кэш приложения GooglePlay и приложения Google Play services.
- Удалить IInAppBillingService.файл aidl.
- скопируйте вышеуказанный файл снова из папки sdk и вставьте его в папку aidl в моем приложении.
эта проблема обычно возникает, когда мы копируем файл aidl из одного проекта в другой проект.