Java Android许可测试响应始终响应错误\u未管理\u市场\u

Java Android许可测试响应始终响应错误\u未管理\u市场\u,java,android,android-lvl,Java,Android,Android Lvl,我在Google Play上创建我的应用程序标题 我用谷歌的LVL库创建了一个应用程序。 我用我用来登录Google Play开发者控制台的相同帐户登录Android设备 LicenseChecker使用了正确的公钥(来自Google Play应用程序许可证密钥)。 正在清除我的Google Play缓存,但尚未上载应用程序,但许可证服务器需要在许可证测试设置页面上设置响应,否 当我运行应用程序时,许可证服务器总是响应:3(错误\u未\u市场\u管理) 我等了24小时,但什么也没发生。响应为3

我在Google Play上创建我的应用程序标题

我用谷歌的LVL库创建了一个应用程序。 我用我用来登录Google Play开发者控制台的相同帐户登录Android设备

LicenseChecker
使用了正确的公钥(来自Google Play应用程序许可证密钥)。 正在清除我的Google Play缓存,但尚未上载应用程序,但许可证服务器需要在许可证测试设置页面上设置响应,否

当我运行应用程序时,许可证服务器总是响应:
3(错误\u未\u市场\u管理)

我等了24小时,但什么也没发生。响应为
3

我将应用程序(相同版本代码)上传到google play,但没有发布

我又等了24小时,但什么也没发生。响应为
3

世跆联:)

好的,一步一步回到开头:

我根据Android SDK的许可示例创建了一个应用程序。 LVL版本是2

我在google play上做了一个标题

一个
BASE64\u公钥
从google play应用程序许可证的示例中重写。 我使用我的发布者帐户登录android设备(出厂重置后)

此示例已返回
3


我怎么了???

我希望我能回答这个问题,我能帮助你,但是如果这个答案对你没有帮助,请展示一些代码,也许这是一个简单的编码问题

很长一段时间以来,我都遇到了类似的问题,我所有的授权应用程序都不起作用(对我来说,但从未得到用户的负面响应)。我发现了两件事:第一,eclipse总是在我的库项目上显示一个错误。这导致我的授权APK上出现警告,即对此库的引用无效。在过去,我只是清除了历史上的“问题”,然后就成功了。我看到的是,在库清单中包含了targetSdk:

    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="17"/>

但是库项目不支持标记targetSdkVersion,因此我删除了它:

    <uses-sdk android:minSdkVersion="3" />

在此之后,错误消失了,所有许可项目似乎都很好。第二个问题是,一段时间以来,不再支持将应用程序保存为草稿,如下所述:


因此,您需要做的是,将apk上传到控制台内的alpha或beta测试并发布它。该应用程序无法从其他用户处看到,只要您将测试权限授予一些谷歌团体即可。我将控制台内的响应再次设置为许可并保存。等待一段时间(最多24小时)直到google play注意到这些变化后,它成功了

我也经常意外地遇到
错误\u无法管理市场。
我的问题是我使用我的主要开发人员Gmail地址作为我的测试帐户,我的应用程序是一个付费应用程序

要解决我的问题:
-我必须创建第二个Gmail帐户,
-将其添加到我的测试人员列表中(单击您的Google Play开发者帐户上的设置以获得正确的屏幕),
-将新的Gmail帐户添加到您要测试的移动设备上的帐户列表中,
-然后删除设备上的应用程序的任何版本,
-然后通过GooglePlay下载下载

当你点击Google Play启动它(触摸“玩游戏”)时,你会在屏幕左上角看到你在Google Play中的Gmail帐户。将其更改为您的新测试帐户。 现在你可以下载你的付费应用程序(在你这么做之前,它永远不会让你下载),并且(希望)你将不再得到
ERROR\u MARKET\u MANAGED

您如何可能遇到此错误?大致有三种方式

  • 让我们假设在
    LicenseChecker
    中的方法
    checkAccess
    中,该行之后:
    if(bindResult){

    你已经把这句话写下来了:
    System.println(“良好绑定”);

    并且在
    LicenseValidator
    in方法验证中,您已放置:
    System.out.println(“签名已验证”);

    在行之前的行中:
    }捕获(无此算法异常){

    确保已转到新版本号,上载到alpha,等待片刻,然后运行。如果看到: 好球 签名验证

  • 在跟踪输出中,您得到的错误是
    error\u NOT\u MARKET\u MANAGED
    ,那么我认为您触发了这个特定问题


  • 如果在
    LicenseValidator
    中进行方法验证,请输入:
    System.out.println(“开始验证调用:+responseCode”);

    ResponseData=null之后;
  • 然后进行准备,然后运行,然后您会看到:

    开始验证呼叫:561

    那么你可能有这个问题


  • 如果在
    LicenseChecker
    中将
    DEBUG\u LICENSE\u ERROR
    设置为true,并且在将applicationError放入LVL启动代码的任何位置设置为:
    String result=String.format(“应用程序错误:%1$s”,错误代码);
    System.out.println(“结果:+result);//或使用Toast在屏幕上显示它
  • 然后跑过去看看

    结果:应用程序错误:3

    那么你可能有这个问题


    尤其令人讨厌的是,当您将此应用程序的测试响应设置为除“正常响应”之外的任何其他选项时,您的应用程序的行为就像是完全响应当前设置的许可响应一样。

    但是,当您将测试响应设置为“正常响应”
    时,您将始终得到
    错误\u非\u市场\u管理的
    (如果应用程序已付费,并且您正试图在测试设备上使用您的主Gmail帐户).

    您是否更改了开发者控制台中的许可测试响应?您是否在控制台上注册了与设备中的Google帐户相同的电子邮件帐户?是的(现在是Li