Android“Not_Market_Managed”错误

时间:2010-08-16 20:58:39

标签: android google-play-services android-lvl

尝试尝试市场许可服务,我遇到了样本应用程序的一些问题。

当我第一次运行该示例时,我收到一条错误消息,指出该应用程序未获得许可。我将我的帐户链接到模拟器以获取测试响应,现在我收到错误消息“应用程序错误:NOT_MARKET_MANAGED”

这是否意味着我必须将应用程序上传到市场才能测试它是否有效?

9 个答案:

答案 0 :(得分:9)

是的,您的应用必须在市场上销售,如果已经存在,您必须拥有的版本代码编号大于或等于已发布的版本代码。

答案 1 :(得分:9)

可能还有另一种方式。对样本的MainActivity的评论如下:

 * 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更改为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消息。

为什么?

答案 2 :(得分:5)

你会想到“已保存的草稿”就是这样的。否则,您销售的应用程序根据定义无法进行现场直接测试。

答案 3 :(得分:3)

将您的应用(.apk)上传到市场。默认状态为“已保存的草稿”,因此公众无法看到,但您仍可以测试许可。

另一个潜在问题:

确保您正在测试/运行的版本在AndroidManifest.xml中具有与市场中的草稿版本相同的android:versionCode。如果版本不同,您将收到NOT_MARKET_MANAGED错误。 (显然,RSA密钥对用于许可 检查是基于每个应用程序/每个版本。)

答案 4 :(得分:3)

经过一番努力,我得到了这个工作。您不能按原样使用LVL样本。

这就是我的所作所为:

  • 将项目的包修改为其他内容(我使用:lvl.test)
  • 将MainActivity的BASE64_PUBLIC_KEY设置为Developer Console配置文件中的一个。
  • 导出已签名的应用
  • 转到开发者控制台并上传应用程序(创建虚拟图像并为其指定虚拟名称和说明等,以便保存并列为“未发布”)
  • 将导出的应用程序(从您的文件系统)安装到您的测试设备(即adb install bin / path / to / your.apk)
  • 在设备上
  • ,打开Android电子市场,转到:设置&gt;帐户&gt;并选择与您的开发者控制台帐户对应的那个
  • 您现在可以在开发者控制台配置文件中选择静态许可证测试响应并保存。当您在设备上运行LVL样本时,响应将与您选择的响应相对应!

答案 5 :(得分:2)

根据我的经验,应用程序必须在LVL开始工作之前发布,包括。静态响应测试。对我来说ERROR_NOT_MARKET_MANAGED仅在发布后才离开,但the docs表示您可以调试并测试应用程序的许可实施, 发布应用程序

很酷的部分是你可以发布而只有alpha / beta版本 - 该应用程序真的不会直播,只有测试帐户才能够用它。

当您准备初始发布时,在您完全确定所有内容都处于正常运行状态之前点击发布可能看起来不自然(事实上您必须放置在描述和屏幕截图之前,你可以做到这一点更令人担忧 - 你认为这些是最后的接触) - 但是你应该,只要确保你已经对包名称做出了明智的选择,该应用程序是付费还是免费 - 这些内容在发布后无法更改。仅发布不会使应用公开;除非你有一个 Production 版本,否则不要担心不小心让未经测试的版本上线。

答案 6 :(得分:1)

这是相关的,所以它可能对某人有所帮助:

我正在测试华硕变压器并且不得不删除所有非开发人员帐户以使许可证测试工作(包括我的雅虎帐户)。删除其他帐户后,所有步骤都可以正常运行。

答案 7 :(得分:0)

在我的情况下,我因为版本代码差异而得到了... 已经发布apk的版本代码= 2

经过一些测试发布新的apk后我将版本代码设置为5

导致此错误,因为当前发布的apk版本差异应该是1。 同样适用于版本名称..

答案 8 :(得分:0)

如果您已经尝试了上述所有建议,请尝试以下操作:

我有一段时间的反应,我无法弄清楚为什么会这样。我在App Licensing上阅读了整个文档,但仍然收到了令人讨厌的NOT_MARKET_MANAGED响应代码。

我终于通过更改AndroidManifest.xml文件中的applicationId来解决问题。我从头开始用一个空白的新项目重写了一个应用程序。问题是我没有使用完全正确的applicationId。问题是Google Play商店中的原始应用程序使用大写字母,而我在新创建的项目中以小写字母写了所有字母。

由于我更正了applicationId以匹配100%(包括套管),因此我得到了许可服务的预期行为。