我将应用内结算集成在一个活动中,通过livewallpaper的首选项菜单进行访问,并且工作正常且花花公子。也就是说,直到我尝试取消购买应用。一旦我试图取消,应用程序崩溃了。
FATAL EXCEPTION: main
java.lang.NullPointerException
at com.google.android.finsky.billing.iab.MarketBillingService$BillingNotifier.showStatusBarNotifications(MarketBillingService.java:733)
at com.google.android.finsky.billing.iab.MarketBillingService$Stub$1.onResponse(MarketBillingService.java:482)
at com.google.android.finsky.billing.iab.MarketBillingService$Stub$1.onResponse(MarketBillingService.java:474)
at com.google.android.vending.remoting.api.VendingRequest.deliverResponse(VendingRequest.java:141)
at com.google.android.vending.remoting.api.VendingRequest.deliverResponse(VendingRequest.java:40)
at com.android.volley.ExecutorDelivery$ResponseDeliveryRunnable.run(ExecutorDelivery.java:113)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4680)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
我弄清楚如何消除此崩溃的唯一方法是使用以下标记声明活动:
<!-- BTW, I cannot put this tag on the livewallpaper service itself. It has to be an activity. In my case, this activity is some sort of a purchase window. -->
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
不幸的是,现在这个应用程序既是一个启动器又是一个livewallpaper,现在主菜单中有一个图标,它启动之前标记的活动。我知道如何删除图标的唯一方法是以编程方式删除LAUNCHER标记。我认为这不会飞,因为应用内结算首先需要LAUNCHER标签,否则会再次崩溃。
这里有没有人在livewallpaper中进行过应用内结算?有没有其他方法可以消除此崩溃?或者可能是一种在不删除LAUNCHER标签的情况下删除图标的方法吗?