许可证检查程序的错误报告 - 这是什么意思?

use*_*184 5 android android-lvl

我只是遵循标准的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)
Run Code Online (Sandbox Code Playgroud)

这意味着什么?这是正常的吗?我以前从来没有这样做过.由于有问题的应用程序越来越受欢迎 - 这是否表明有人试图以某种方式破解应用程序以避免支付?

非常感谢您的见解!

thu*_*ove 13

当设备未安装Google Play应用或没有使用默认设置注册帐户时,通常会遇到此例外情况.如果拥有旧的Google Market应用程序,可能会遇到此异常.

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


phi*_*ask 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
    }
Run Code Online (Sandbox Code Playgroud)

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

<uses-permission android:name="android.permission.GET_ACCOUNTS" />
Run Code Online (Sandbox Code Playgroud)