0

アプリ内課金機能を設定できません。ドキュメントに書かれているように、次のコードまですべて実行しました。

package com.fstaer.android;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;

import android.app.AlertDialog;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;

import com.example.android.trivialdrivesample.util.IabHelper;
import com.example.android.trivialdrivesample.util.IabHelper.QueryInventoryFinishedListener;
import com.example.android.trivialdrivesample.util.IabResult;
import com.example.android.trivialdrivesample.util.Inventory;
import com.example.android.trivialdrivesample.util.Purchase;

public class Getcredits extends Activity{
    IabHelper mHelper;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.purchase_credits);
        String base64EncodedPublicKey = "my public key setup successfully";

        // compute your public key and store it in base64EncodedPublicKey
        mHelper = new IabHelper(this, base64EncodedPublicKey);
        mHelper.startSetup(new IabHelper.OnIabSetupFinishedListener() {
               public void onIabSetupFinished(IabResult result) {
                  if (!result.isSuccess()) {
                     // Oh noes, there was a problem.
                     Log.d("getcr", "Problem setting up In-app Billing: " + result);
                  }            
                     // Hooray, IAB is fully set up!  
                  List additionalSkuList = new ArrayList();
                  additionalSkuList.add("record_pack1");
                  //additionalSkuList.add(SKU_BANANA);
                  mHelper.queryInventoryAsync(true, additionalSkuList,
                     mQueryFinishedListener);
               }
        });


    }
    @Override
    public void onDestroy() {
        super.onDestroy();
       if (mHelper != null) mHelper.dispose();
       mHelper = null;
    }
}

エラーが発生しています - mQueryFinishedListener を変数に解決できません

私がQueryInventoryFinishedListener mQueryFinishedListener = null; それを置くと、java.lang.nullpointerexception が作成されます アプリ内課金の設定を手伝ってください

4

1 に答える 1

1

追加

QueryInventoryFinishedListener 
   mQueryFinishedListener = new QueryInventoryFinishedListener() {
   public void onQueryInventoryFinished(IabResult result, Inventory inventory)   
   {
      if (result.isFailure()) {
         // handle error
         return;
       }

       String applePrice =
          inventory.getSkuDetails(SKU_APPLE).getPrice();
       String bananaPrice =
          inventory.getSkuDetails(SKU_BANANA).getPrice();

       // update the UI 
   }
};

あなたのクラスに。

null に割り当てると、明らかに NPE が発生します。そうしないでください。

于 2013-03-13T17:17:38.743 に答える