2013-03-13 49 views
0

我无法设置应用内结算功能。正如在文档中所写的,我已经完成了所有的任务,直到后面的代码。Android应用内结算错误 - mQueryFinishedListener无法解析为变量

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 请人帮我在应用程式设定帐单

回答

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。不要这样做。

+0

谢谢。现在正在工作 – user2166537 2013-03-13 17:25:12

+0

@ user2166537请点击勾号接受答案。 – 2013-03-13 17:30:33

+0

@RaghavSood你有没有遇到Inapp账单中的多用户错误? http://stackoverflow.com/questions/15263889/does-in-app-billing-support-multiple-accounts/15492261#15492261 – 2013-03-19 05:55:20