16

使用com.android.vending.licensing您可以检查您的应用程序是否获得许可。有一个回调,applicationError()它会告诉您是否有任何问题。今天我遇到了错误ERROR_NOT_MARKET_MANAGED,我不知道我应该如何处理它!

这是我所做的:

  1. 在 Google Play 上,我将我的电子邮件地址添加为测试帐户。
  2. 在 Google Play 上,我使用versionCode="10".
  3. 在我的机器上,我更改为versionCode="11".
  4. 许可证检查现在失败并出现错误代码ERROR_NOT_MARKET_MANAGED

问题是; 我应该处理这个错误还是这是一个不切实际的场景?

4

5 回答 5

31

ERROR_NOT_MARKET_MANAGED:这个名字真的说明了一切,应用程序不是由 Android Market(现在称为 Google Play)管理的。更具体地说,您的应用程序版本 11 未在 Google Play 中上传或发布。

我应该处理这个错误还是这是一个不切实际的场景?

我认为这是一个不切实际的场景。只要您在 Google Play 中上传新的应用版本,您就不需要在代码中做任何特别的事情。ERROR_NOT_MARKET_MANAGED 更像是一个 LVL 开发警告,它帮助开发人员正确实施许可证检查代码,并在项目构建时按照正确的程序测试许可证检查。查看 LVL 示例代码中的注释:

private class MyLicenseCheckerCallback implements LicenseCheckerCallback {

    ... ...

    public void applicationError(ApplicationErrorCode errorCode) {
        if (isFinishing()) {
            // Don't update UI if Activity is finishing.
            return;
        }
        // This is a polite way of saying the developer made a mistake
        // while setting up or calling the license checker library.
        // Please examine the error code and fix the error.
        //String result = String.format(getString(R.string.application_error), errorCode);
        //String result = "Error";
        //handleLicensingResult(result);
    }
}

将 LVL 集成到您的应用程序中的全部目的是使用 Google Play 发布您的应用程序,并使用 Google Play 客户端应用程序下载并安装您的应用程序(请参阅开发指南中的要求和限制部分)。如果出现以下情况,我看不到任何可能导致最终用户设备运行时出现此 applicationError 的点:

  1. 开发人员按照正确的程序在 Google Play 中上传(用于测试 LVL)或发布(用于实际发布)。
  2. 最终用户使用 Google Play 客户端应用程序购买、下载和安装应用程序。

如果最终用户以某种方式从其他渠道(不是通过 Google Play 购买)获得您的应用程序的副本(集成 LVL 并在 Google Play 中上传/发布)并尝试将其安装在他的设备上(其中安装了 Google Play 客户端应用程序) device),在这种情况下,LicenseCheckerCallback 将转到 dontAllow() 而不是 applicationError(ApplicationErrorCode errorCode)。

于 2012-04-30T01:49:33.470 回答
13

不要在将应用程序上传到 Google Play 后立即对其进行测试。

在开始测试之前等待一段时间(15-20 分钟或更长时间)。Google play 需要一些时间来识别您的应用。

于 2012-10-22T18:52:48.973 回答
2

7 月 29 日,我发现当我的应用程序处于 Alpha 或 Beta 测试时,我得到的只是错误 3 或 Error_Not_Market_Managed。这实际上是来自服务器的回复。所以这意味着我正在触摸服务器并且代码很好。无论在开发者控制台中设置什么作为回复,这是我得到的唯一回复。

我实际上已经等了 3 天,没有任何变化。所以没有可以接受的等待时间。我什至清除并重置了我的整个手机。我清除了 Google Play 缓存和所有其他魔术。他们都不是原因。

我使用新的 Google 许可证代码更新了我已经发布的应用程序之一,并得到了完全相同的响应。在我更改了版本代码然后将其上传以发布后,大约 4 小时后,该应用程序运行正常,并且 Google 许可证检查以良好的有效代码响应。现在,只要它完全发布,它就会响应我告诉它的任何代码。

所以答案是,在完全发布之前,Google 许可证将无法正常运行。如果您的应用程序处于 Alpha 或 Beta 版并且您收到错误 3,那么您可能很好。只需注释掉许可证检查方法,直到您准备好发布。

于 2014-07-29T08:15:01.420 回答
1

至于现在,2014 年 5 月,我必须发布测试应用程序(没有上传生产 APK),以便测试上传的 APK 和扩展 OBB 测试版。否则,我总是ERROR_NOT_MARKET_MANAGED在测试时得到APKExpansionPolicy. 并且发布后2小时(网页上的通知说“最多24小时”),我可以得到扩展文件信息。

除了测试人员之外,没有人可以看到已发布的应用程序 AFAIK。

于 2014-05-16T03:07:06.667 回答
0

它也可能发生在旧设备中。我正在测试我的应用程序,但没有发布实际版本,它在我的 Galaxy S8 上运行良好,但我在 Galaxy S4 上收到此消息。这意味着说这也可能是谷歌的错误也是一种礼貌的方式。

于 2017-09-06T00:44:03.503 回答