Android“Not_Market_Managed”错误

努力尝试市场许可服务,我遇到了一些示例应用程序的问题。

当我第一次运行样本时,出现错误,说应用程序没有许可。 我将我的帐户连接到模拟器,以获得testing响应,现在我收到一个错误,说“应用程序错误:NOT_MARKET_MANAGED”

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

Solutions Collecting From Web of "Android“Not_Market_Managed”错误"

是的,你的应用程序必须在市场上,如果已经是,你必须有一个版本号码大于或等于已经发布的版本号码。

可能有另一种方法。 样本的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. 

当你login到http://market.android.com/publish/editProfile时,你会看到一个选项来更&#x6539;License Test Response

在这里输入图像说明

文字说:

此许可证testing响应将发送到使用@ gmail.com或上面列出的testing帐户的设备上,以查看您已上传到市场的应用程序。 此外,此帐户(但不是testing帐户)将收到尚未上传到市场的应用程序的响应。

如果您单击该select列表,您将看到不同的选项:

在这里输入图像说明

我想所有你需要做的,对于最初的示例LVL教程程序,是将响应从Respond normally响应更改为LICENSED或任何其他您想testing的设置。

更新:事实certificate,上述措施是不够的。 我仍然收到NOT_MARKET_MANAGED错误。 我想“市场许可示例”必须按照以前的答案build议上传。 但请注意,它不能是debugging版本:

在这里输入图像说明

,你不能真正上传这个“市场许可示例”。 您至less必须更改软件包的名称:

在这里输入图像说明

我可以看到Google的示例/示例系统可以如何改进,变得更加适合开发人员…

奇怪的。 上传应用程序(只需上传和保存草稿,不填写任何其他必填字段)后,“市场许可示例”将停止发布NOT_MARKET_MANAGED错误,尽pipe事实上明确select了NOT_LICENSED 。 而是以消息“ Allow the user access作为响应。 我也尝试设置(为了testing和学习的目的)它到ERROR_SERVER_FAILURE但我得到相同的Allow the user access消息。

为什么?

你会认为“Saved Draft”就是这个样子。 否则,你正在销售一个应用程序,根据定义,不能在现场进行完整的testing。

将您的应用(.apk)上传到市场。 默认状态将是“已保存的草稿”,因此对公众不可见,但您仍然可以testing许可。

另一个潜在的问题是:

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

经过一番斗争,我得到了这个工作。 您不能按原样使用LVL样品。

以下是我所做的:

  • 修改项目的包到别的东西(我用:lvl.test)
  • 将MainActivity的BASE64_PUBLIC_KEY设置为开发者控制台configuration文件中的一个。
  • 导出签名的应用程序
  • 去开发者控制台并上传应用程序(创build虚拟图像,并给它一个虚拟的名称和说明等,只是为了保存并被列为“未发布”)。
  • 将导出的应用程序(从您的文件系统)安装到您的testing设备(即adb install bin / path / to / your.apk)
  • 在您的设备上,打开“Android电子市场”,转到:设置>帐户>,然后select与您的开发者控制台帐户相对应的帐户
  • 您现在可以在开发者控制台configuration文件中select一个静态许可testing响应并保存。 当您在设备上运行LVL示例时,响应将与您select的相对应!

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

我正在testing一个华硕变压器,并不得不删除所有非开发人员帐户,以使许可证testing工作(包括我的雅虎帐户)。 一旦其他账户被删除,所有的步骤没有问题。

根据我的经验,应用程序必须在LVL开始工作之前发布, 静态响应testing。 对我来说, ERROR_NOT_MARKET_MANAGED只有在发布后才离开,尽pipe文档说你可以在发布应用程序之前debugging和testing一个应用程序的许可实现

酷部分是你可以发布,而只有alpha / beta版本 – 应用程序不会真正上线,只有testing帐户才能使用它。

在准备初次发布时,在完全确定所有内容都处于正常工作状态之前, 发布Publish可能显得不自然(事实上,您必须在描述和屏幕截图之前添加更多内容 – 你会认为这些都是最后的触动) – 但是你应该确保你已经对软件包的名称做了一个明智的select,应用程序是付费的还是免费的 – 发布之后这些东西是不能改变的。 单独发布不会使应用程序公开。 除非你有一个生产版本,不要担心不小心让一个未经testing的版本上线。

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

并经过一些testing发布新的apk的我已经设置版本代码为5

这是造成这个错误的版本差异应该是确切的1与当前发布的apk ..相同的也适用于版本名称..

如果你已经尝试了上面的所有build议,试试这个:

我有同样的回应一段时间,我不明白为什么会这样。 我阅读了应用程序许可的整个文档,仍然收到相同的令人讨厌的NOT_MARKET_MANAGED响应代码。

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

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