在尝试市场许可服务时,我遇到了示例应用程序的一些问题。
当我第一次运行示例时,我收到一条错误消息,指出该应用程序未获得许可。我将我的帐户链接到模拟器以使其获得测试响应,现在我收到一条错误消息“应用程序错误:NOT_MARKET_MANAGED”
这是否意味着我必须将应用程序上传到市场才能测试它是否有效?
在尝试市场许可服务时,我遇到了示例应用程序的一些问题。
当我第一次运行示例时,我收到一条错误消息,指出该应用程序未获得许可。我将我的帐户链接到模拟器以使其获得测试响应,现在我收到一条错误消息“应用程序错误: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.
当您登录http://market.android.com/publish/editProfile时,您将看到一个用于更改的选项License Test Response
:
文中说:
对于您已上传到 Market 的应用程序,此许可证测试响应将使用 @gmail.com 或上面列出的测试帐户发送到设备。此外,对于尚未上传到 Market 的应用程序,此帐户(但不是测试帐户)将收到此响应。
如果单击该选择列表,您将看到不同的选项:
我想对于初始示例 LVL 教程程序,您所要做的就是将响应从 更改Respond normally
为LICENSED
或您要测试的任何其他设置。
更新:事实证明,上述措施是不够的。我仍然得到 NOT_MARKET_MANAGED
错误。我想“市场许可示例”必须按照以前的答案建议上传。但是请注意,它不能是调试版本:
哦,你不能真的按原样上传那个“市场许可示例” 。您至少必须更改包的名称:
我可以看到如何改进 Google 的示例/示例系统以变得对开发人员更加友好......
奇怪的。上传申请后(只是上传并保存草稿,没有填写任何其他必填字段),“市场许可示例”停止发出NOT_MARKET_MANAGED
错误,尽管明确选择了NOT_LICENSED
. 相反,它以 message 响应Allow the user access
。我也尝试将其设置(用于测试和学习目的),ERROR_SERVER_FAILURE
但我得到了相同的Allow the user access
信息。
为什么?
你会认为“保存的草稿”正是它的用途。否则,您销售的应用程序根据定义无法在现场进行全面测试。
将您的应用程序 (.apk) 上传到市场。默认状态为“已保存草稿”,因此公众不会看到它,但您仍然可以测试许可。
另一个潜在问题:
确保您正在测试/运行的版本在 AndroidManifest.xml 中与市场上的草稿版本具有相同的 android:versionCode。如果版本不同,您将收到 NOT_MARKET_MANAGED 错误。(显然,用于许可证检查的 RSA 密钥对是基于每个应用程序/每个版本的。)
经过一番挣扎,我得到了这个工作。您不能按原样使用 LVL 示例。
这是我所做的:
根据我的经验,该应用程序必须在 LVL 开始工作之前发布,包括。静态响应测试。对我来说,尽管文档说您可以在发布应用程序之前调试和测试应用程序的许可实现,ERROR_NOT_MARKET_MANAGED
但仅在发布后才离开。
很酷的部分是您可以在只有 alpha/beta 版本时发布——该应用程序不会真正上线,只有测试帐户才能使用它。
当您准备首次发布时,在您完全确定一切正常之前点击发布似乎是不自然的(事实上,您必须先输入描述和屏幕截图才能做到这一点更令人担忧——你会认为这些是最后的润色)——但你应该,只要确保你对包名称以及应用程序是付费还是免费做出了明智的选择——这些东西在发布后就不能改变了. 单独发布不会使应用程序公开;除非您有生产版本,否则不要担心意外使未经测试的版本上线。
这是相关的,因此它可能对某人有所帮助:
我在华硕变压器上进行测试,必须删除所有非开发人员帐户才能使许可证测试正常工作(包括我的雅虎帐户)。删除其他帐户后,所有步骤都可以正常工作。
就我而言,由于版本代码差异,我得到了.. 已经发布了 apk 的版本代码 = 2
经过一些测试发布新的apk后,我将版本代码设置为5
这导致了这个错误,因为版本差异应该与当前发布的 apk 精确为 1 .. 同样适用于版本名称..
如果您已经尝试了上述所有建议,请尝试以下操作:
我有一段时间有同样的反应,我不明白为什么会这样。我阅读了有关App Licensing的整个文档,但仍然收到同样烦人的 NOT_MARKET_MANAGED 响应代码。
我终于可以通过更改 AndroidManifest.xml 文件中的 applicationId 来解决问题。我从一个空白的新项目开始从头开始重写了一个应用程序。问题是我没有使用完全正确的applicationId。问题是 Google Play Store 上的原始应用程序使用大写字母,而我在新创建的项目中将所有字母都写成小写。
由于我更正了 applicationId 以匹配 100%(包括大小写),因此我得到了许可服务的预期行为。