Ошибка Android "не управляемый рынком"

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

когда я впервые запустил образец, я получил сообщение об ошибке, что приложение не было лицензировано. Я связал свою учетную запись с симулятором, чтобы получить его, чтобы получить тестовый ответ, и теперь я получаю сообщение об ошибке "ошибка приложения: NOT_MARKET_MANAGED"

означает ли это, что я должен загрузить приложение на рынок, чтобы проверить, если это работает?

9 ответов


Да, ваше приложение должно быть на рынке, и если оно уже есть, вы должны иметь номер кода версии, который больше или равен уже опубликованному.


может быть другой способ. Комментарии к основной активности образца гласят:

 * The first thing you need to do is get your hands on your public key.
 * Update the BASE64_PUBLIC_KEY constant below with your encoded public key,
 * which you can find on the
 * <a href="http://market.android.com/publish/editProfile">Edit Profile</a>
 * page of the Market publisher site.
 * <p>
 * Log in with the same account on your Cupcake (1.5) or higher phone or
 * your FroYo (2.2) emulator with the Google add-ons installed. Change the
 * test response on the Edit Profile page, press Save, and see how this
 * application responds when you check your license.

и когда вы входите в http://market.android.com/publish/editProfile вы увидите опцию для изменения License Test Response:

enter image description here

дословно сказав:

этот ответ теста лицензии будет отправлено на устройства, использующие @gmail.com или тестовые учетные записи, перечисленные выше для приложения, которые вы загрузили к Рынок. Кроме того, эта учетная запись (но не тестовые учетные записи) будет получение этого ответа для приложений которые еще не были загружены Рынок.

если вы нажмете этот список выбора, вы увидите различные варианты:

enter image description here

Я думаю, все, что вам нужно сделать, для этого начального образца LVL учебная программа, это изменить ответ от Respond normally to LICENSED или любой другой параметр, который вы хотите тест.

обновление: оказывается, что вышеприведенной меры недостаточно. Я все еще получаю NOT_MARKET_MANAGED ошибка. Я предполагаю, что" пример лицензирования рынка " должен быть загружен, как предлагалось в предыдущих ответах. Обратите внимание, однако, что это не может быть отладочная версия:

enter image description here

о, и вы не можете действительно загрузить этот "пример лицензирования рынка"как. Вы должны по крайней мере изменить имя пакет:

enter image description here

Я вижу, как образец/пример системы Google может быть улучшен, чтобы стать более дружественным к разработчику...

странно. после загрузки приложения (просто загрузка и сохранение черновика, не заполняя никаких других обязательных полей), "пример лицензирования рынка" прекращает выдачу NOT_MARKET_MANAGED ошибка, несмотря на то, что четко выбрано NOT_LICENSED. Вместо этого он отвечает сообщением Allow the user access. Я также попытался установить (для теста & учебные цели) это к ERROR_SERVER_FAILURE но я же Allow the user access сообщение.

почему?


вы бы подумали, что "сохраненный Черновик" будет именно для этого. В противном случае, вы продаете приложение, которое по определению не может быть полностью протестированы жить.


загрузить приложение (.АПК) на рынок. Состояние по умолчанию будет "сохраненный Черновик", поэтому он не будет виден общественности, но вы все равно можете проверить лицензирование.

еще одна потенциальная проблема:

убедитесь, что версия, которую вы тестируете/запускаете, имеет тот же android:versionCode в AndroidManifest.xml как черновик версии на рынке. Если версии отличаются, вы получите ошибку NOT_MARKET_MANAGED. (По-видимому, ключевая пара RSA используется для лицензии проверки выполняются на основе каждого приложения / каждой версии.)


после небольшой борьбы я получил эту работу. Вы не можете использовать образец LVL как есть.

вот что я сделал:

  • измените пакет проекта на что-то другое (я использовал: lvl.тест)
  • установите BASE64_PUBLIC_KEY MainActivity в профиль консоли разработчика.
  • экспорт подписанного приложения
  • перейдите в консоль разработчика и загрузите приложение (создайте фиктивные изображения и дайте ему фиктивное имя и описание и т. д. так что он сохраняет и отображается как "неопубликованный")
  • установите экспортированное приложение (из файловой системы) на тестовое устройство (т. е. adb install bin/path/to/your.apk)
  • на вашем устройстве откройте Android Market перейдите в: Настройки>Учетные записи> и выберите тот, который соответствует вашей учетной записи консоли разработчика
  • теперь вы можете выбрать статический тестовый ответ лицензии в профиле консоли разработчика и сохранить его. Когда вы запустите образец LVL на своем устройстве, ответ будет соответствуйте тому, который вы выбрали!

по моему опыту, приложение должно быть опубликовано до того, как LVL начнет работать, ВКЛ. испытание статической реакции. Для меня ERROR_NOT_MARKET_MANAGED ушел только после публикации, хотя документы сказать можно отладка и тестирование реализации лицензирования приложения до публикация приложения.

прохладный часть -вы можете опубликовать пока только альфа/бета-версии -- приложение не будет live, только тестирование будет возможность использовать его.

когда вы готовитесь к первоначальному выпуску, может показаться неестественным ударить публикации прежде чем вы будете полностью уверены, что все в рабочем состоянии (и тот факт, что вы должны поместить в описание и скриншоты, прежде чем вы можете сделать это еще более тревожно - вы думаете, что это последние штрихи) - но вы должны, просто убедитесь, что вы сделали разумный выбор о названии пакета и является ли приложение платным или бесплатным-эти вещи не могут быть изменены после опубликования. публикации в одиночку не делает приложение общедоступным; если у вас нет производства build не беспокойтесь о случайном создании непроверенной версии go live.


Это связано, поэтому это может помочь кому-то:

Я тестировал на ASUS transformer и должен был удалить все учетные записи не-разработчиков, чтобы получить тестирование лицензии на работу (включая мою учетную запись yahoo). После того, как другие учетные записи были удалены все шаги, работал без проблем.


в моем случае я получал из-за разницы в коде версии as.. Уже опубликован код версии apk = 2

и после некоторого тестирования выпуска нового apk я установил код версии 5

который вызывал эту ошибку, поскольку разница в версии должна быть точной 1 с опубликованным в настоящее время apk.. то же самое было применено и к имени версии..


Если вы уже пробовали все предложения выше, попробуйте это:

У меня была такая же реакция, и я не мог понять, почему это так. Я прочитал всю документацию на Приложение Лицензирования и все еще получает тот же раздражающий код ответа NOT_MARKET_MANAGED.

Я, наконец, abe, чтобы решить проблему, изменив мой applicationId в AndroidManifest.XML-файл. Я переписал приложение с нуля, начиная с пустого нового проекта. Этот проблема заключалась в том, что я не использовал точный правильный applicationId. Проблема заключалась в том, что исходное приложение в Google Play Store использовало букву в верхнем регистре, в то время как я писал все буквы в нижнем регистре во вновь созданном проекте.

поскольку я исправил applicationId на 100% (включая корпус), я получаю ожидаемое поведение службы лицензирования.