看起来,如果 Android 手机未登录 Google Play,则 checkAccess 调用将抛出 NullPointerException 并最终使应用程序崩溃:
// user not logged in to Google Play
LicenseChecker licenseChecker = new LicenseChecker(...);
licenseChecker.checkAccess(...) // throws a nullpointer exception and crasches the app
NullPointerException 发生在 Android 框架深处的一个单独线程中:
FATAL EXCEPTION: background thread
java.lang.NullPointerException
com.google.android.vending.licensing.LicenseValidator.verify()
因此,应用程序似乎没有办法捕获它并避免崩溃。
有什么想法可以避免这种崩溃吗? (应该是不登录Google Play的合法情况)
我能想到的唯一方法是在调用 checkAccess 之前检查 Google Play 登录状态。
我修改了License Validator.verify()方法,在开头添加了保护检查:
public void verify(PublicKey publicKey, int responseCode, String signedData, String signature) {
if (signedData==null){
handleInvalidResponse();
return;
}
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)