사용자의 구매를 시도하고 있는데 내 청구 서비스가 null이고 프로세스가 AsyncTask에서 실행 중이고 btw Inapp 결제 서비스의 초보자 인 경우 여기에 내 코드 :getPurchases()의 NullPointerException
내 서비스 연결 : 내 AsyncTask를의
IInAppBillingService BillingService;
private ServiceConnection ServiceConnection = new ServiceConnection() {
@Override
public void onServiceDisconnected(ComponentName name) {
BillingService = null ;
}
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
BillingService = IInAppBillingService.Stub.asInterface(service);
}
};
부 :
@Override
protected String doInBackground(Activity... params) {
final Activity mActivity = params[0];
bindService(new Intent("com.android.vending.billing.InAppBillingService.BIND"), ServiceConnection, Context.BIND_AUTO_CREATE);
ConnectivityManager c = (ConnectivityManager) getSystemService(Service.CONNECTIVITY_SERVICE);
NetworkInfo NI = c.getActiveNetworkInfo();
if(NI == null || ! NI.isConnected()){
// do some stuff
}else{
Bundle purchases = null;
try {
purchases =
BillingService.
getPurchases(3, "le.wild.packagename", "inapp", null);
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(purchases.getInt("RESPONSE_CODE") == 0){
ArrayList<String> Items = purchases.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
ArrayList<String> itemsData = purchases.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
boolean o = false;
for(int i = 0 ; itemsData.size() > i ; i++){
if(Items.get(i).contains("le.wild.itemName")){
o = false;
continue;
}else{
o = true;
}
}
// do some stuff
}
내가 구매 의도와 O를 구매를 소모하고 얻기를 위해 같은 방법을 사용하고 있습니다
ther 기능, 여기와 지금은 작동하지 않습니다! 더 이상 정보가 필요하거나 아무것도 없으면 미리 감사드립니다!
편집 :
스택 트레이스 :
07-22 15:58:12.830: E/AndroidRuntime(12719): FATAL EXCEPTION: AsyncTask #1
07-22 15:58:12.830: E/AndroidRuntime(12719): java.lang.RuntimeException: An error occured while executing doInBackground()
07-22 15:58:12.830: E/AndroidRuntime(12719): at android.os.AsyncTask$3.done(AsyncTask.java:299)
07-22 15:58:12.830: E/AndroidRuntime(12719): at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
07-22 15:58:12.830: E/AndroidRuntime(12719): at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
07-22 15:58:12.830: E/AndroidRuntime(12719): at java.util.concurrent.FutureTask.run(FutureTask.java:239)
07-22 15:58:12.830: E/AndroidRuntime(12719): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-22 15:58:12.830: E/AndroidRuntime(12719): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
07-22 15:58:12.830: E/AndroidRuntime(12719): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
07-22 15:58:12.830: E/AndroidRuntime(12719): at java.lang.Thread.run(Thread.java:856)
07-22 15:58:12.830: E/AndroidRuntime(12719): Caused by: java.lang.NullPointerException
07-22 15:58:12.830: E/AndroidRuntime(12719): at seaskyways.quadcoremanagerplus.CoresManagement$2.doInBackground(CoresManagement.java:372)
07-22 15:58:12.830: E/AndroidRuntime(12719): at seaskyways.quadcoremanagerplus.CoresManagement$2.doInBackground(CoresManagement.java:1)
07-22 15:58:12.830: E/AndroidRuntime(12719): at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-22 15:58:12.830: E/AndroidRuntime(12719): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
07-22 15:58:12.830: E/AndroidRuntime(12719): ... 4 more
StackTrace주세요. – FabianCook
'onServiceDisconnected()'에'BillingService == null'을 설정했습니다. 예외가 발생할 때가 될 수 있습니다. 'if (BillingService! =) {purchases = BillingService ..........; }'. – Vikram
stacktrace를 추가했습니다. – Seaskyways