6

我刚刚遵循了标准的 Android 许可证检查程序,最近我收到了这些报告:

java.lang.NullPointerException
at com.google.android.vending.licensing.LicenseValidator.verify(LicenseValidator.java:99)
at com.google.android.vending.licensing.LicenseChecker$ResultListener$2.run(LicenseChecker.java:228)
at android.os.Handler.handleCallback(Handler.java:605)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.os.HandlerThread.run(HandlerThread.java:60)

这意味着什么?这是正常的吗?我以前从来没有得到过这个。由于有问题的应用程序变得越来越流行 - 这是否表明有人试图以某种方式破解该应用程序以避免付款?

非常感谢您的见解!

4

2 回答 2

13

此异常通常在设备未安装 Google Play 应用或未注册默认帐户时遇到。当使用旧的 Google Market 应用程序时,可能会遇到此异常。

您也可以在这里查看问题:http ://code.google.com/p/android/issues/detail?id=26722

于 2012-11-21T16:36:35.557 回答
7

我知道这是一个老问题,但我在几个测试设备上遇到了这个错误 NPE 并添加了这个快速修复:

    AccountManager am = AccountManager.get(context);
    int numAccounts = am.getAccountsByType("com.google").length;

    if(numAccounts == 0) {
        noAccountDialog();
    } else {
        // Do the license check as you have an account
    }

您将需要 AndroidManifest.xml 中的 GET_ACCOUNTS 权限

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
于 2013-04-14T06:59:09.163 回答