0

为什么我可以在我的物理测试设备上获得许可证验证,而不是在我的电脑上运行的模拟器上?

从模拟器进行测试时,无论我做什么,都会收到 NOT_MARKET_MANAGED 错误。从实际的电话中,它可以毫无问题地通过。

是因为我的模拟器没有安装市场应用程序而我的测试设备有吗?

4

3 回答 3

2

好吧,原来我的模拟器在尝试运行 LVL 代码之前没有设置谷歌帐户。显然,如果模拟器上还没有设置 google 帐户,则 LVL 没有用于检查验证的帐户。

LVL 仍将在未安装 Android 市场的模拟器上运行。

编辑

*仅在运行 Android 2.2 的模拟器上测试*

* LVL 不适用于运行 2.3 或更高版本的模拟器,显然这是一个已知错误*

于 2011-07-29T18:18:06.850 回答
0

好吧,你遇到了一个真正的问题:这是一个已知的错误。不过,有一条出路。您必须将 MVC 代码与许可证检查例程分开(这里有一个很好的示例)。在多个模拟 API 版本中测试完代码后,您可以将许可证检查活动添加到您的项目并在清单中将其标记为 MAIN 和 LAUNCHER,将应用程序上传到您的手机并测试身份验证。按照评论中的说明进行操作,不要忘记进行必要的调整(例如,我必须在 java 文件中将库从 com.android 更改为 com.google.android,但保留 com.android.vending.LICENSE_CHECK清单使用权限标签。)

于 2013-01-28T17:34:05.940 回答
0

我知道这是一个老问题,但我刚刚遇到这个问题,并认为我会更新答案。

对于在 API 15 上运行模拟器的许可证检查,我反复收到错误代码 291(错误联系服务器)。根据我写这篇文章时的“已接受”答案,它说“LVL 无法在 API 8 / 2.2 上的模拟器上工作- 这是一个已知的错误”。

对于 API 15,我使用了 Google API 的模拟器(包括 LVL 库),并且必须进入设置并添加一个测试用户帐户,并且它可以工作。现在,根据我在 Google Play 帐户中的帐户设置,我从 Google Play 许可证服务器获得了相应的错误响应。

如果您同时使用 Google Play / Market 应用程序(使用 Google API 模拟器并在模拟器中设置测试帐户),则不需要 Google Play / Market 应用程序。这是参考:

http://developer.android.com/google/play/licensing/setting-up.html#acct-signin

During testing, to ensure that your application can successfully query the licensing server, you must make sure that you sign in to an account on the device or emulator using:

The credentials of a publisher account, or
The credentials of a test account that is registered with a publisher account
于 2013-12-29T17:13:42.977 回答