你如何处理LicenseCheckerCallback.ERROR_NOT_MARKET_MANAGED错误代码?

时间:2012-04-30 00:46:56

标签: android google-play android-lvl

使用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
  5. 问题是;我应该处理这个错误还是这是一个不现实的情况?

5 个答案:

答案 0 :(得分:30)

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客户端应用程序下载并安装您的应用程序(请参阅开发指南中的Requirements and Limitations部分)。在以下情况下,我无法看到任何可能在运行时在最终用户设备上导致此applicationError的点:

  1. 开发人员按照正确的程序在Google Play中上传(测试LVL)或发布(实际发布)。
  2. 最终用户使用Google Play客户端应用程序购买,下载并安装该应用程序。
  3. 如果最终用户以某种方式从其他渠道(不是通过Google Play购买)获得您的应用程序的副本(在Google Play中集成和上传/发布LVL)并尝试将其安装在他的设备上(使用Google Play客户端应用程序)在这种情况下,LicenseCheckerCallback将转到dontAllow()而不是applicationError(ApplicationErrorCode errorCode)。

答案 1 :(得分:13)

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

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

答案 2 :(得分:2)

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

我实际上等了3天,没有变化。所以没有可以接受的等待时间。我甚至清除并重置了我的整个手机。我清除了谷歌播放缓存和所有其他魔术技巧。这些都不是原因。

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

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

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

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