2013-03-14 26 views
5

Mam aplikację, w której dodałem w rozliczeniach aplikacji (v3). Wydawana aplikacja sprawdziła się (z niewielkiej liczby) urządzeń, które testowałem. Kod został obfuskowany proguardem, ale zachowałem odpowiadający mu proguard mapping.txt.W rozliczeniu aplikacji (v3) - zrozumienie punktu zerowego zerowego

Kilka zakupów zostało pomyślnie wykonanych, ale otrzymałem również raporty o awariach. I następnie wykorzystywane retrace.bat tłumaczyć ślady katastrofy stosu i mam następujący wynik:

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) 

jestem nieco mętny o jak odczytać ślady stosu, ale zgaduję, że być może nie było null pointer w ramach OnIabPurchaseFinishedListener ...? Jeśli tak, jak to się mogło stać?

EDIT: Czy fakt, że „launchPurchaseFlow” pojawia się w ślad stosu oznaczać, że program rozbił się, gdy użytkownik próbuje coś kupić?

EDIT: Zgodnie z wnioskiem oto słuchacz:

/** 
* 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

Czy używasz "domyślnego" kodu Google w swojej aplikacji? –

+0

plz post 'OnIabSetupFinishedListener' Kod odbiornika –

+0

@klass stacker: nie w 100% pewny co masz na myśli ... ale używam klasy IabHelper dostarczonej przez google. – Mick

Odpowiedz

4

Może ten odnosi się do kwestii poruszonych tutaj: https://code.google.com/p/android/issues/detail?id=42338

Zaktualizowana kod nie został wypchnięty do kierownika SDK jeszcze , ale możesz wyświetlić wszystkie zmiany związane z tym problemem tutaj: https://code.google.com/p/marketbilling/source/detail?r=7ec85a9b619fc5f85023bc8125e7e6b1ab4dd69f

Istnieją 4 pliki dotknięte problemem. Wprowadź zmiany, które sugerują, i sprawdź, czy nadal masz ten sam problem.

Powiązane problemy