2013-10-12 50 views
0
10-11 23:44:04.220 E/AndroidRuntime(15090): java.lang.NullPointerException 
10-11 23:44:04.220 E/AndroidRuntime(15090):  at com.android.vending.licensing.LicenseValidator.verify(LicenseValidator.java:101) 
10-11 23:44:04.220 E/AndroidRuntime(15090):  at com.android.vending.licensing.LicenseChecker$ResultListener$2.run(LicenseChecker.java:213) 
10-11 23:44:04.220 E/AndroidRuntime(15090):  at android.os.Handler.handleCallback(Handler.java:615) 
10-11 23:44:04.220 E/AndroidRuntime(15090):  at android.os.Handler.dispatchMessage(Handler.java:92) 
10-11 23:44:04.220 E/AndroidRuntime(15090):  at android.os.Looper.loop(Looper.java:137) 
10-11 23:44:04.220 E/AndroidRuntime(15090):  at android.os.HandlerThread.run(HandlerThread.java:60) 

public void verify(PublicKey publicKey, int responseCode, String signedData, String signature) { 
    String userId = null; 
    // Skip signature check for unsuccessful requests 
    ResponseData data = null; 
    if (responseCode == LICENSED || responseCode == NOT_LICENSED || 
      responseCode == LICENSED_OLD_KEY) { 
     // Verify signature. 
     try { 
      Signature sig = Signature.getInstance(SIGNATURE_ALGORITHM); 
      sig.initVerify(publicKey); 
      sig.update(signedData.getBytes()); 

你知道如何忽略这种异常吗?这只发生在某些设备上。所以用户无法获得许可证。我发现我的market_licensing库仍然是1.0,但我找不到2.0或更高版本。 PLZ帮助我。谷歌市场授权中的NullPointerException

回答

0

你可以在NullPointers的try/catch方法中包含方法的内容吗?不理想,但它会给你一个快速的补丁,让你通知用户的东西是错误的,而不是崩溃,直到你找到一个永久性的修复。

+0

我加了这个:if(signedData == null)return;但我想,用户仍然没有获得许可证。 – thecr0w