今天早上,我的收件箱已满水,因为用户收到我的其中一款付费应用的许可证验证错误。在过去的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();
答案 0 :(得分: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更新...
更新:
还收到了一些评论,例如:
“在“设置”选项卡上,我打开/关闭了“通知访问”。这似乎唤醒了它。错误停止了。”