我正在實現一個基於Dungeons示例的結算服務(這是Google推薦你去做的方式)。它由以下事實稍微複雜:在基於Dungeons的賬單服務中,bindService返回NullPointerException
- 主要服務類生活在一個庫項目(因爲我想多次代碼)。由於this stackoverflow answer暗示圖書館項目中的服務可能會導致問題,因此我已經將該服務抽象並繼承到了子項目中;這也讓我對每個reskin使用不同的公鑰(這是可取的)。
- 有很多UI元素需要知道是否儘快支持帳單。
因此我打電話來檢查功能,如果計費是從第一個活動運行的onCreate()
方法支持(實際上任何活動,但隨後偏好將被寫入所以這應該只發生一次)。
在地牢樣品,以檢查代碼,如果計費支持試圖綁定到計費服務從而(從Service
類):
boolean bindResult = bindService(
new Intent(Consts.MARKET_BILLING_SERVICE_ACTION),
this, // ServiceConnection.
Context.BIND_AUTO_CREATE);
此呼叫被投擲NullPointerException
。我仔細檢查過,這些東西都不爲空;它在內發生的功能,顯然在ContextWrapper.java的第370行。
由於this other stackoverflow answer我想知道,如果從onCreate()
查詢結算可能爲時過早,但地下城示例項目再次從這裏調用它,所以我不認爲是這樣。
我使用的是更早的Android版本(3.1),因此可能會產生影響,但我很想知道可能的原因。還有一件事:Eclipse告訴我customIntent
爲空,但它並不完全清楚那是指什麼,我也沒有找到太多的東西。