Я реализовал 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
.
. .
Большое спасибо. Это решило мою проблему, с которой я столкнулся с двух дней. –
Я не уверен, что мое редактирование верное, потому что мы не вызываем 'flagEndAsync()', если вызов преуспевает, но я не знаком с остальной частью класса. Может быть, лучше поставить его в выражение 'finally' или что-то подобное. Открыта для других редакций точно. – Soup
flagEndAsync() должен завершить работу Async, и в следующий раз, если мы попробуем его купить, он не будет бросать «llegalStateException: не удается запустить асинхронную операцию (launchPurchaseFlow), потому что выполняется другая операция async (launchPurchaseFlow)». –