3

我现在正在尝试将我的应用程序发布 3 个小时,但我无法让许可证检查正常工作。

在我的onCreate方法中,我得到了这个代码:

// Try to use more data here. ANDROID_ID is a single point of attack.
String deviceId = Secure.getString(getContentResolver(), Secure.ANDROID_ID);
String pckName = getPackageName();

// Library calls this when it's done.
mLicenseCheckerCallback = new MyLicenseCheckerCallback();
// Construct the LicenseChecker with a policy.
mChecker = new LicenseChecker(this, new ServerManagedPolicy(this, new AESObfuscator(
    SALT, pckName, deviceId)), BASE64_PUBLIC_KEY);

mChecker.checkAccess(mLicenseCheckerCallback);

回调看起来像这样

private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
    public void allow(int policyReason) {
        if (isFinishing()) 
            return; // Don't update UI if Activity is finishing.
        // Should allow user access.
        Main.isLicensed = true;
    }

    public void dontAllow(int policyReason) {
        if (isFinishing())
            return; // Don't update UI if Activity is finishing.
        Main.isLicensed = false;
    }

    public void applicationError(int errorCode) {
        if (isFinishing())
            return; // Don't update UI if Activity is finishing.
        Main.isLicensed = false;
    }
}

只有 dontAllow 方法被调用。响应码是 291。

在 logcat 中,我收到“联系许可服务器时出错”。

  • 该应用程序已上传到开发人员控制台。

  • 公钥是正确复制的(没有任何空格)。

  • 手机(带有 Android 4.0.4 Stock 的三星 Galaxy S2)可以上网

有任何想法吗?

4

3 回答 3

4

代码对我来说看起来不错。但我现在有一个类似的问题。你是否 ...

  • 重新启动网络连接
  • 重启了你的手机
  • 清除google play store的数据(设置->应用->google play store)
  • 清除 google play 服务的数据
  • 使用您的发布者/测试帐户登录您的设备 Google Play 商店

让我知道,如果解决了问题。

谢谢 最良好的祝愿

于 2012-12-19T09:28:23.403 回答
0

我在处理扩展文件时也遇到了这个问题,除了更新扩展文件和清单版本#,我的应用程序没有任何变化。

我的应用程序花了一个多小时才最终找到并下载新的扩展文件。直到那时,它只是不断给出随机错误,如“联系许可服务器时出错”,然后它会说它下载了文件(但字节大小是 1 字节,所以它没有)并且文件验证会失败,等等

正如 Joda 在评论中所说,谷歌有时只是很慢。等待几个小时,然后重试。执行克里斯汀在她的回答中列出的步骤也会有所帮助,但可能只是您需要等待更长时间。

于 2013-01-30T16:29:43.503 回答
-3

它的互联网问题。请用高速互联网测试它。

于 2014-11-12T13:09:44.827 回答