2013-02-04 2 views
2

Я реализовал In-App Billing в моем проекте, но несколько раз он предоставляет следующий метод IabHelper.launchPurchaseFlow() NullPointerException. в настоящее время я использую зарезервированные идентификаторы для тестирования, а apk не подписан.NullPointerException InAppBilling.IabHelper.launchPurchaseFlow (IabHelper.java:356)

02-01 01:53:56.097: E/AndroidRuntime(9314): java.lang.NullPointerException 
02-01 01:53:56.097: E/AndroidRuntime(9314):  at com.example.app.InAppBilling.IabHelper.launchPurchaseFlow(IabHelper.java:356) 
02-01 01:53:56.097: E/AndroidRuntime(9314):  at com.example.app.InAppBilling.IabHelper.launchPurchaseFlow(IabHelper.java:307) 
02-01 01:53:56.097: E/AndroidRuntime(9314):  at com.example.app.MYTabActivity$4.onClick(MYTabActivity.java:418) 
02-01 01:53:56.097: E/AndroidRuntime(9314):  at com.android.internal.app.AlertController$ButtonHandler.handleMessage 
. 

. .

ответ

4

Этот может помочь вам: http://code.google.com/p/android/issues/detail?id=41407

// in IapHelper.java line 357 
if (listener != null) 
    listener.onIabPurchaseFinished(result, null); 
flagEndAsync(); // Added 
return; // Added 
+0

Большое спасибо. Это решило мою проблему, с которой я столкнулся с двух дней. –

+0

Я не уверен, что мое редактирование верное, потому что мы не вызываем 'flagEndAsync()', если вызов преуспевает, но я не знаком с остальной частью класса. Может быть, лучше поставить его в выражение 'finally' или что-то подобное. Открыта для других редакций точно. – Soup

+0

flagEndAsync() должен завершить работу Async, и в следующий раз, если мы попробуем его купить, он не будет бросать «llegalStateException: не удается запустить асинхронную операцию (launchPurchaseFlow), потому что выполняется другая операция async (launchPurchaseFlow)». –

-5

NullPointerException придет время, когда вы звоните method or varible on null refference.

Сделать весь ваш референс с Null Check.

EX:

IabHelper labHelper = NULL;

если вы звоните

labHelper.getSomething(); // since labHelper is null this will cause NullPointerException 

Некоторые советы, чтобы избежать NullPointerException

http://www.javacodegeeks.com/2012/06/avoid-null-pointer-exception-in-java.html