使用com.android.vending.licensing
,您可以检查您的应用是否获得许可。有一个回调,applicationError()
告诉你是否出了什么问题。今天我遇到了错误ERROR_NOT_MARKET_MANAGED
,我无法弄清楚应该如何处理它!
这就是我的所作所为:
versionCode="10"
保存了我的应用(未发布)。versionCode="11"
。ERROR_NOT_MARKET_MANAGED
。问题是;我应该处理这个错误还是这是一个不现实的情况?
答案 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的点:
如果最终用户以某种方式从其他渠道(不是通过Google Play购买)获得您的应用程序的副本(在Google Play中集成和上传/发布LVL)并尝试将其安装在他的设备上(使用Google Play客户端应用程序)在这种情况下,LicenseCheckerCallback将转到dontAllow()而不是applicationError(ApplicationErrorCode errorCode)。
答案 1 :(得分:13)
将您的应用程序上传到Google Play后,请不要立即对其进行测试。
在开始测试之前,请等待一段时间(15-20分钟或更长时间)。 Google Play需要一些时间来识别您的应用。
答案 2 :(得分:2)
我实际上等了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上收到此消息。 这意味着它也是一种礼貌的方式,说这也可能是谷歌的错误。