似乎如果Android手机未登录Google Play,则checkAccess-call将抛出NullPointerException并最终导致应用程序崩溃:
// user not logged in to Google Play
LicenseChecker licenseChecker = new LicenseChecker(...);
licenseChecker.checkAccess(...) // throws a nullpointer exception and crasches the app
Run Code Online (Sandbox Code Playgroud)
NullPointerException发生在Android框架内部的一个单独的线程中:
FATAL EXCEPTION: background thread
java.lang.NullPointerException
com.google.android.vending.licensing.LicenseValidator.verify()
Run Code Online (Sandbox Code Playgroud)
因此,应用程序似乎无法捕获它并避免崩溃.
任何想法如何避免这种崩溃?(t应该是不能登录Google Play的合法情况)
我能想到的唯一方法是在调用checkAccess之前检查Google Play登录状态.
我修改了LicenseValidator.verify()方法,在开头添加了一个保护检查:
public void verify(PublicKey publicKey, int responseCode, String signedData, String signature) {
if (signedData==null){
handleInvalidResponse();
return;
}
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |