【问题标题】:GooglePlay: LVL: License: Validation Errors or Failures: LicenseCheckerCallback: com.google.android.vending.licensingGooglePlay:LVL:许可证:验证错误或失败:LicenseCheckerCallback:com.google.android.vending.licensing
【发布时间】:2018-07-04 10:43:30
【问题描述】:

我的收件箱今天早上被用户收到我的一个付费应用程序的许可证验证错误淹没了。在过去 5 年左右的时间里,该应用的许可一直运行良好。

很遗憾,我无法重现该问题...

它使用来自 Google package="com.google.android.vending.licensing" 的旧 LVL

private class MyLicenseCheckerCallback implements LicenseCheckerCallback {
    // Means: GooglePlay believes this user is legitimate
    @Override
    public void allow(int x, int policyReason, String y) {
        if (isFinishing()) {
            // Don't update UI if Activity is finishing.
            return;
        }

        MainActivity.this.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                try { mProgressDialog.dismiss(); mProgressDialog = null; } catch (Exception e) {e.printStackTrace(); }
            }
        });

        // Update server
        Util.pingServer(getApplicationContext());
    }

    // Means: Google Play definitely thinks this version is a pirate version
    @SuppressWarnings("SpellCheckingInspection")
    public void dontAllow(int x, final int policyReason, String y) {
        EventLog.i(TAG, "don't Allow: " + policyReason);
        if (isFinishing()) {
            // Don't update UI if Activity is finishing.
            return;
        }

        MainActivity.this.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                try { mProgressDialog.dismiss(); mProgressDialog = null; } catch (Exception e) {e.printStackTrace(); }
                showGoogleLicenseDialog(policyReason == Policy.RETRY ? 1 : 0);
            }
        });
    }


    // Means: Developer has not setup licensing properly
    // ERROR_NOT_MARKET_MANAGED: not managed by Android Market (now called Google Play)
    // More specifically, the version X of your application is not uploaded or published in Google Play
    public void applicationError(final int errorCode) {
        EventLog.e(TAG, "applicationError: " + errorCode);

        if (isFinishing()) {
            // Don't update UI if Activity is finishing.
            return;
        }

        MainActivity.this.runOnUiThread(new Runnable() {
            @Override
            public void run() {
                try { mProgressDialog.dismiss(); mProgressDialog = null; } catch (Exception e) {e.printStackTrace(); }

                // Developer mistake dialog
                String result = String.format(getString(R.string.application_error), errorCode);
                ActivityHelper.showToast(MainActivity.this, "License problem: App Error: " + result, Toast.LENGTH_LONG);
            }
        });
    }
}
private final MyLicenseCheckerCallback mMyLicenseCheckerCallback = new MyLicenseCheckerCallback();

【问题讨论】:

    标签: android google-play licensing android-lvl


    【解决方案1】:

    Google 似乎在生产中对此进行了处理。它可以通过更新到 GooglePlay 商店 10.7.19 来修复

    Latest Google Play Store 10.7.19 fixes LVL check

    这里有另一篇文章:

    Google Play Store app licensing bug is putting developers in a horrible spot

    来自用户的一些评论:
    “谢谢,我侧载了 playstore 更新,似乎已经修复了它。”
    “我们最终放弃了,将手机恢复出厂设置。这似乎解决了问题......”

    目前的主要问题是并非所有用户都可以访问 10.7.19 更新...

    更新:

    还收到了几个 cmets,例如:
    “在设置选项卡上,我关闭/打开了通知访问。这似乎唤醒了它。错误停止了。”

    【讨论】:

      猜你喜欢
      • 2019-06-29
      • 2020-09-23
      • 2016-02-02
      • 2019-09-08
      • 2015-10-19
      • 2015-06-05
      • 2015-11-19
      • 1970-01-01
      相关资源
      最近更新 更多