我正在实施基于 Dungeons 示例的计费服务(这是 Google 推荐的方式)。以下事实使情况稍微复杂:
- 主要服务类位于库项目中(因为我想多次重新设计代码)。由于此 stackoverflow 答案表明库项目中的服务可能会导致问题,因此我已将服务抽象化并在子项目中继承它;这也让我可以为每个 reskin 使用不同的公钥(这是可取的)。
- 有很多 UI 元素需要尽快了解是否支持计费。
因此,我正在调用一个函数来检查onCreate()
第一个活动运行的方法是否支持计费(实际上是任何活动,但随后将编写一个首选项,因此这只应该发生一次)。
在 Dungeons 示例中,检查是否支持计费的代码尝试绑定到计费服务(来自Service
类):
boolean bindResult = bindService(
new Intent(Consts.MARKET_BILLING_SERVICE_ACTION),
this, // ServiceConnection.
Context.BIND_AUTO_CREATE);
这个电话正在抛出一个NullPointerException
. 我已经非常仔细地检查过,这些东西都不是空的;它发生在函数中,显然在 ContextWrapper.java 的第 370 行。
由于这个其他的stackoverflow答案,我想知道是否检查账单onCreate()
可能为时过早,但是Dungeons示例项目再次从这里调用它,所以我不认为是这样。
我使用的是更高版本的 Android (3.1),因此可能会产生影响,但我很想知道可能的原因。另一件事:Eclipse 告诉我customIntent
它是空的,但它指的是什么并不完全清楚,我也找不到太多关于它的信息。