Я пытаюсь интегрировать покупки в Android Market в свое приложение, но, к сожалению, каждый раз сталкиваюсь с досадной ошибкой, когда пытаюсь приобрести настоящий продукт inapp.
Я взял образец приложения (Dungeons) и добавил его в свое приложение. Я обновил открытый ключ, а также обновил список продуктов следующим образом:
/ ** Массив записей списка продуктов для продуктов, которые можно приобрести. * /
private static final CatalogEntry[] CATALOG = new CatalogEntry[] {
new CatalogEntry("full", "Full v", Managed.MANAGED),
};
Я экспортировал приложение с помощью Eclipse, установил его на свой телефон, а также загрузил на веб-сайт Android Market. Также на веб-сайте Android Market я добавил полную версию как покупку в приложении и опубликовал ее.
Я также добавил свою учетную запись googlemail в качестве тестовой учетной записи (это та, в которую я вошел на своем телефоне).
Когда я запускаю приложение на своем телефоне, я получаю сообщение о том, что запрошенный вами товар недоступен для покупки, когда я пытаюсь купить его полностью, но если я попробую, например, android.test.purchased, он работает абсолютно нормально.
В документации по запрошенному вами элементу, недоступному для покупки Android, указано следующее:
Указывает, что Android Market не может найти запрошенный элемент в списке продуктов приложения. Это может произойти, если идентификатор продукта неправильно написан в вашем запросе REQUEST_PURCHASE или если элемент не опубликован в списке продуктов приложения.
Идентификатор продукта определенно тот же, он определенно опубликован, и запрос должен пройти нормально, поскольку это образец приложения.
Я использую ту же версию apk, я также опубликовал продукты inapp и также активировал apk. но все же я столкнулся с той же проблемой, пожалуйста, помогите мне исправить ее.
Любые мысли будут оценены!
Merchant Account
, отличается от учетной записи устройства?Ответы:
Мой опыт по этой ошибке:
Обязательно загрузите подписанный APK в консоль разработчика.
Убедитесь, что на вашем устройстве установлен подписанный APK, а не запускайте приложение в отладчике.
Обязательно создайте тестовую учетную запись в консоли разработчика.
Настройте свой тестовый аккаунт
Обязательно создайте биллинг в приложении в консоли разработчика и, наконец, активируйте элемент из консоли !!! (это тот, который получил меня после полного следования руководству Google)
Обязательно установите VersionCode и VersionName в манифесте так, чтобы они совпадали с версией в консоли разработчика (Alpha, Beta или Production. Черновики больше не работают). Ответ @alexgophermix работал у меня.
Если вы ищете тестовые платежи без фактического вывода денег, вам необходимо дополнительно добавить свою тестовую учетную запись в другой специальный список учетных записей «Учетные записи Gmail с тестовым доступом», вы можете найти это в настройках игровой учетной записи (не в проекте!). На странице, где вы можете увидеть список ваших проектов, перейдите в настройки, а затем на странице «Сведения об учетной записи» (прокрутите вниз, она почти внизу страницы) вы найдете список «Учетные записи Gmail с тестовым доступом».
источник
Вот что нужно проверить:
Что для меня сделало это через 6 часов, так это последняя часть:
ОБНОВИТЬ
источник
Это происходит, когда продукт находится
Inactive
в Play Store,Activate
продукт и он должен работать нормально.источник
Есть еще одна возможная причина этой ошибки, которая почти сводила меня с ума на целый день, пока я не обнаружил, в чем проблема: версия apk. Если вы работаете с локальным apk (правильно подписанным, правильным ключом, правильными идентификаторами продуктов) с номером версии выше, чем номер, загруженный в Play Store, вы также получите эту ошибку.
Надеюсь, это кому-то поможет
источник
Эта ошибка возникает, когда все, что вы сделали, идеально, вы использовали подписанный APK с правильным идентификатором продукта, но вы должны отметить, что используемая вами учетная запись может не иметь правильных данных действительной кредитной карты .
Поэтому всякий раз, когда вы хотите купить какой-либо продукт даже с тестовой учетной записью , эта учетная запись должна иметь действительные кредитные данные.
источник
Возможно, я делал это неправильно, но вы также получите эту ошибку, если версия, которую вы тестируете, отсутствует в Play Store как альфа, бета или рабочая версия.
Я часто обновляю свой VersionCode и VersionName, все еще тестируя новую версию (ПЕРЕД загрузкой в Play Store), а затем получаю эту ошибку, когда иду тестировать определенные функции IAB.
источник
В моем случае нужно перейти, чтобы получить ссылку из вкладки APK
Opt-in URL
. Откройте браузер и воспользуйтесь ссылкой. Затем зарегистрируйтесь в качестве тестировщика на этой странице.источник
вы должны согласиться стать тестером
Управление выпусками -> выпуски приложений -> управление тестером, затем откройте эту ссылку (URL-адрес подписки) в режиме инкогнито для входа в учетную запись тестера
источник
пожалуйста, проверьте, используете ли вы тот же почтовый идентификатор тестовой учетной записи или нет
источник
Последние добавления (2016/11):
тестировщик должен ПРИНИМАТЬ запрос на тестирование, взятый по ссылке из консоли разработчика (раздел: APK)
приложение должно быть ОПУБЛИКОВано : его можно опубликовать в бета / альфа-тестировании; ИНФОРМАЦИЯ: если вы нажмете «Опубликовать» в консоли разработчика, приложение не будет опубликовано в рабочей среде, если вы не перенесете его на вкладку «Производство» (в разделе APK);
источник
Если статус продукта «Неактивен», активируйте его. это решило для меня. Конечно, Google требует времени, чтобы обновить
Также убедитесь, что ваше тестовое письмо было зарегистрировано.
источник
«Открытое альфа-тестирование» или «открытое бета-тестирование» решило для меня проблему, после того как я испробовал все методы, предлагаемые в Интернете.
Перейдите в консоль разработчика Android -> Ваше приложение -> APK, затем включите использование открытого альфа / бета-тестирования. Отправьте ссылку себе или тестерам.
Пока они вошли в систему с этой учетной записью на своем устройстве Android, они могут ее протестировать.
Удачи
источник
Я столкнулся с той же проблемой. Решением для меня была загрузка текущей версии вашего приложения в игровой магазин. Если это для тестирования, загрузите его в альфа- или бета-канал, я сделал это, и ошибка исчезла. и информация о ценах отображается правильно ..
источник
Возможны три варианта:
Если вы тестируете, не нужно публиковать приложение. Просто сохраните его как черновик. И затем подождите некоторое время, может быть, от 2 до 3 часов, чтобы активировать это.
источник
Чтобы решить эту проблему, выполните следующие действия:
Создайте продукт на консоли разработчика Google Play.
Сохраните и установите его в «Активный».
Загрузите APK в Google play.
NB. Биллинг внутри приложения может не работать до тех пор, пока не пройдет 6 часов после создания продукта на шаге 1.
источник
Ответ, получивший наибольшее количество голосов, охватывает практически все, но если вы были так же глупы, как я, торопились с процессом выпуска приложения, чтобы продолжить тестирование IAP, обязательно опубликуйте приложение в Play Store страны, которую вы тестируете. в! Простой способ проверить это на устройстве - нажать ссылку «Загрузить в Google Play» при открытии тестового URL-адреса. Если вы получаете сообщение об ошибке «Элемент не найден» при попытке открытия через магазин Google Play, вероятно, ваше приложение там не было опубликовано. Я столкнулся с этой проблемой, потому что я правильно загружал подписанное приложение через ADB, и хотя IAP будут отображаться в сборке, вы получите эту ошибку, когда попытаетесь их приобрести.
источник
При покупке подписки в приложении у меня было все, что указано в списке ниже, в нужном месте.
Создан подписанный apk и опубликован в альфа-канале
Добавлены идентификаторы электронной почты тестировщика для тестирования лицензии
Добавлены идентификаторы электронной почты тестировщика для закрытого альфа-тестирования
Выбрал быть тестером
Идентификатор тестирования отличался от идентификатора учетной записи разработчика
Был на устройстве Android, а не на эмуляторе
Загрузил приложение из игрового магазина
Тем не менее я получал сообщение об ошибке: «Не удалось найти искомый предмет». .
Потратив 2-3 дня, я обнаружил, что он работает, только если в игровом магазине был настроен какой-то режим оплаты. .
Хотя большинство ответов относятся к старой покупке IAB, и я внедрил новый API биллинг-клиента, который -
implementation 'com.android.billingclient:billing:1.0'
это было нелегко найти решение.Если это тот же случай для кого-то, добавление режима оплаты может помочь вам преодолеть эту ошибку. Вам нужно добавить его даже для тестирования, однако он не будет взиматься за идентификаторы электронной почты, добавленные в качестве тестеров лицензии.
источник