1。 我在Google Play上创建了自己的应用标题。
我使用谷歌的LVL库创建了一个应用程序。 我使用与登录Google Play开发者控制台时相同的帐户登录Android设备。
LicenseChecker使用了正确的公钥(来自google play app license key)。 清除我的Google Play缓存。 没有上传应用程序,但是许可证服务器需要在许可证测试设置页面上设置响应,nop?
当我运行应用程序时,许可证服务器始终响应3(ERROR_NOT_MARKET_MANAGED)。
我等了24小时,但没有任何反应,响应是3。
我将应用程序(相同的版本代码)上传到Google Play,但未发布。
我再等24小时,但没有任何反应,回复是3。
WTF:)
好的,回到开始,一步一步:
我从android sdk许可样本创建了一个应用程序。 LVL版本是2。
我在Google Play上制作标题。
从Google Play应用许可证中重写样本中的BASE64_PUBLIC_KEY。 我使用我的发布者帐户登录了一个Android设备(出厂重置后)
此样本返回3!
我有什么问题????
答案 0 :(得分:0)
我希望我能回答这个问题并且我能够帮助你,但是如果这个答案对你没有帮助,请显示一些代码,这可能是一个简单的编码问题。
我长时间遇到类似的问题,我所有的许可应用程序都没有用(对我来说,但从来没有得到用户的否定回复)。我发现了两件事:第一,eclipse allways在我的图书馆项目中显示错误。这导致我的许可apks上的警告,该库的引用无效。在过去,我只是清除了“问题”的历史,而不是它的工作原理。我所看到的是,在图书馆清单中包含了targetSdk:
<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="17"/>
但是库项目不支持标记targetSdkVersion,所以我删除了它:
<uses-sdk android:minSdkVersion="3" />
在此之后,错误消失了,所有许可的项目似乎都很好。问题是,从一段时间以来,不再支持将应用程序保存为草稿,如下所述:
http://developer.android.com/google/play/billing/billing_testing.html#draft_apps
所以,你需要做的是,将你的apk上传到控制台内的alpha或beta测试并发布它。只要您授权某些Google群组进行测试,就无法从其他人看到此应用。我在控制台内再次将我的响应设置为LICENSED并保存。等待一段时间(最多24小时),直到谷歌播放注意到这些变化,它的工作原理。
答案 1 :(得分:0)
我也经常意外地得到ERROR_NOT_MARKET_MANAGED。我的问题是我使用我的主开发人员gmail地址作为我的测试帐户,我的应用程序是付费应用程序。要解决我的问题,我必须创建第二个Gmail帐户,将其添加到我的测试人员列表中(单击Google Play开发人员帐户中的设置以获取正确的屏幕),将新的Gmail帐户添加到移动设备上的帐户列表中要测试的设备,然后删除设备上的应用版本,然后通过Google Play下载加载。当您点按Google Play启动它(触摸“玩游戏”)时,您会在屏幕左上方的Google Play中看到您所在的Gmail帐户。将其更改为您的新测试帐户。现在你可以下载你的付费应用程序(它在你完成所有这些之前永远不会让你)并且(希望)你将不再获得“ERROR_MARKET_MANAGED:”。
你怎么会遇到这个错误?大致有3种方式。
1)我们假设在方法checkAccess的LicenseChecker中,在行之后:
if(bindResult){
你已经把这行:System.println(“good bind”);
并且在方法中的LicenseValidator中验证您已放置:
Systemm.out.println(“签名验证”);
行中的行:
} catch(NoSuchAlgorithException e){
确保您已转到新版本号,上传到Alpha,等待一段时间,然后运行。如果你看到:
良好的约束力 签名已验证
跟踪输出中的,你得到的错误是ERROR_NOT_MARKET_MANAGED,那么我会说你已经触发了这个特殊的问题。
2)如果在LicenseValidator中进行方法验证,则输入:
System.out.println(“begin verify call:”+ responseCode);
在ResponseData data = null;
之后 然后你会看到:“开始验证电话:561”然后你可能遇到了这个问题。3)如果你在LicenseChecker中将DEBUG_LICENSE_ERROR设置为true,并且无论你在哪个地方放置了你的LVL启动代码中的applicationError:
String result = String.format(“Application error:%1 $ s”,errorCode); System.out.println(“result:”+ result); //或使用Toast在屏幕上显示
并准备然后运行并看到“结果:应用程序错误:3”然后您可能遇到此问题。
这使得这个特别讨厌的事情是,当你将这个应用程序的测试响应设置为“正常响应”之外的任何东西时,你的应用程序就像它完全响应以匹配当前设置的许可证响应。但是..如果您将测试设置为“正常响应”,那么您将始终获得ERROR_NOT_MARKET_MANAGED(如果应用已付款且您尝试在测试设备上使用主要Gmail帐户)。