我遇到的问题类似于此处发现的问题:Google In-App billing, IllegalArgumentException: Service Intent must be explicit, after upgrading to Android L Dev Preview。我已经在建议的答案中尝试了解决方案:https://stackoverflow.com/a/26318757/1489990但是我在使用android 5.0.1的nexus 9上遇到了一个问题(我假设这也适用于所有使用android 5.0的设备)。
问题在于使用此代码:
connection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
mservice = null;
Log.d("PRICE","mservice disconnected");
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mservice = IInAppBillingService.Stub.asInterface(service);
Log.d("PRICE","mservice connected");
if(mservice==null){
Log.d("PRICE","mservice is null");
}
}
};
在我的日志中没有安卓5.0的设备上我看到“mservice connected”。但是在我的nexus 9上,我没有得到任何日志消息,这使我相信mservice为null,并且当我尝试使用此行购买时生成NPE的原因:
Bundle buyIntentBundle = mservice.getBuyIntent(3, getPackageName(),
"images", "inapp", "key");
有关如何解决此问题的任何建议?