2013-03-14 33 views
5

Tôi có một ứng dụng mà tôi đã thêm vào thanh toán ứng dụng (v3). Ứng dụng đã xuất bản xuất hiện để hoạt động tốt (số lượng được thừa nhận nhỏ) của các thiết bị tôi đã thử nghiệm. Mã đã bị làm phiền với proguard, nhưng tôi vẫn giữ proguard mapping.txt tương ứng.Trong thanh toán ứng dụng (v3) - hiểu một nullpointerexception

Một vài giao dịch mua đã được thực hiện thành công, nhưng tôi cũng đã nhận được báo cáo sự cố. Sau đó tôi đã sử dụng retrace.bat để dịch các dấu vết ngăn xếp sự cố và nhận được kết quả sau:

java.lang.NullPointerException 

at com.mycompany.mygame.util.IabHelper.void startSetup(com.mycompany.mygame.util.IabHelper$OnIabSetupFinishedListener)(Unknown Source) 
             void dispose() 
             void launchPurchaseFlow(android.app.Activity,java.lang.String,int,com.mycompany.mygame.util.IabHelper$OnIabPurchaseFinishedListener,java.lang.String) 
             boolean handleActivityResult(int,int,android.content.Intent) 
             com.mycompany.mygame.util.Inventory queryInventory$337baa91(boolean,java.util.List) 
             void queryInventoryAsync$69bb631c(java.util.List,com.mycompany.mygame.util.IabHelper$QueryInventoryFinishedListener) 
             java.lang.String getResponseDesc(int) 
             int getResponseCodeFromBundle(android.os.Bundle) 
             int queryPurchases(com.mycompany.mygame.util.Inventory,java.lang.String) 
             int querySkuDetails(java.lang.String,com.mycompany.mygame.util.Inventory,java.util.List) 
             void logDebug(java.lang.String) 

at com.mycompany.mygame.util.IabHelper.void startSetup(com.mycompany.mygame.util.IabHelper$OnIabSetupFinishedListener)(Unknown Source) 
             void dispose() 
             void launchPurchaseFlow(android.app.Activity,java.lang.String,int,com.mycompany.mygame.util.IabHelper$OnIabPurchaseFinishedListener,java.lang.String) 
             boolean handleActivityResult(int,int,android.content.Intent) 
             com.mycompany.mygame.util.Inventory queryInventory$337baa91(boolean,java.util.List) 
             void queryInventoryAsync$69bb631c(java.util.List,com.mycompany.mygame.util.IabHelper$QueryInventoryFinishedListener) 
             java.lang.String getResponseDesc(int) 
             int getResponseCodeFromBundle(android.os.Bundle) 
             int queryPurchases(com.mycompany.mygame.util.Inventory,java.lang.String) 
             int querySkuDetails(java.lang.String,com.mycompany.mygame.util.Inventory,java.util.List) 
             void logDebug(java.lang.String) 

at com.mycompany.mygame.util.IabHelper$2.void run()(Unknown Source) 
at java.lang.Thread.run(Thread.java:1019) 

Tôi hơi mơ hồ về cách đọc dấu vết ngăn xếp, nhưng tôi đoán rằng có lẽ có một con trỏ rỗng trong OnIabPurchaseFinishedListener ...? Nếu vậy, làm thế nào điều đó có thể đã xảy ra?

EDIT: Thực tế rằng "launchPurchaseFlow" xuất hiện trong theo dõi ngăn xếp có nghĩa là chương trình đã bị lỗi trong khi người dùng đang cố mua thứ gì đó?

EDIT: Theo yêu cầu ở đây là người biết lắng nghe:

/** 
* Callback that notifies when a purchase is finished. 
*/ 
public interface OnIabPurchaseFinishedListener { 
    /** 
    * Called to notify that an in-app purchase finished. If the purchase was successful, 
    * then the sku parameter specifies which item was purchased. If the purchase failed, 
    * the sku and extraData parameters may or may not be null, depending on how far the purchase 
    * process went. 
    * 
    * @param result The result of the purchase. 
    * @param info The purchase information (null if purchase failed) 
    */ 
    public void onIabPurchaseFinished(IabResult result, Purchase info); 
} 
+0

Bạn có đang sử dụng mã "mặc định" của Google trong ứng dụng của mình không? –

+0

plz post 'OnIabSetupFinishedListener' Mã người nghe –

+0

@class stacker: không chắc chắn 100% ý bạn là gì ... nhưng tôi đang sử dụng lớp IabHelper do google cung cấp. – Mick

Trả lời

4

Có lẽ điều này liên quan đến vấn đề nêu ra ở đây: https://code.google.com/p/android/issues/detail?id=42338

Mã được cập nhật chưa được đẩy ra để quản lý SDK chưa , nhưng bạn có thể xem tất cả các thay đổi liên quan đến vấn đề này tại đây: https://code.google.com/p/marketbilling/source/detail?r=7ec85a9b619fc5f85023bc8125e7e6b1ab4dd69f

Có 4 tệp bị ảnh hưởng bởi sự cố. Thực hiện các thay đổi mà họ đề xuất và xem liệu bạn có gặp sự cố tương tự hay không.

Các vấn đề liên quan