앱 청구 (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);
}
앱에 Google '기본'코드를 사용하고 있습니까? –
plz post'OnIabSetupFinishedListener' 리스너 코드 –
@class 스태커 : 100 % 확실하지는 않지만 ... 구글에서 제공하는 IabHelper 클래스를 사용하고 있습니다. – Mick