2013-03-14 4 views
5

앱 청구 (v3)에 앱을 추가했습니다. 게시 된 응용 프로그램은 테스트 한 장치 중 (확실하게 적은 수의) 잘 작동하는 것으로 보입니다. 코드는 proguard로 난독 화되었지만 proguard mapping.txt는 그대로 유지했습니다.앱 청구 중 (v3) - nullpointerexception 이해

몇 번의 구매가 성공적으로 완료되었지만 충돌 보고서가 있습니다. 나는 다음 충돌 스택 추적을 번역 retrace.bat을 사용하여 다음과 같은 결과를 얻었다 : 나는 스택 추적을 읽는 방법에 대한 약간 흐릿 해요

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) 

을,하지만 난 아마 널 포인터가 있다고 추측하고있어 OnIabPurchaseFinishedListener 내에서 ...? 그렇다면 어떻게 된 일일까요?

편집 : 스택 추적에 "launchPurchaseFlow"가 표시된다는 사실은 사용자가 무언가를 구매하려고 할 때 프로그램이 다운 된 것을 의미합니까?

편집 : 여기에 요청 청취자로서 :

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

앱에 Google '기본'코드를 사용하고 있습니까? –

+0

plz post'OnIabSetupFinishedListener' 리스너 코드 –

+0

@class 스태커 : 100 % 확실하지는 않지만 ... 구글에서 제공하는 IabHelper 클래스를 사용하고 있습니다. – Mick

답변

4

어쩌면이 여기에 제기 된 문제에 관한 것이다 업데이트 된 코드는 아직 SDK 관리자에 밀려되지 않은 https://code.google.com/p/android/issues/detail?id=42338

이 문제와 관련된 모든 변경 사항은 여기에서 확인할 수 있습니다. https://code.google.com/p/marketbilling/source/detail?r=7ec85a9b619fc5f85023bc8125e7e6b1ab4dd69f

문제의 영향을받는 파일이 4 개 있습니다. 그들이 제안한 내용을 변경하고 같은 문제가 계속 발생하는지 확인하십시오.

관련 문제