Java 在Android中执行Paypal支付时出错

Java 在Android中执行Paypal支付时出错,java,android,paypal,Java,Android,Paypal,我正在尝试在我的应用程序中执行“使用贝宝支付”按钮 以下是我单击此按钮时的代码: class PaypalTask extends AsyncTask<Void, Void, Void> { protected final char[] TOTAL_GBP=null; public Void doInBackground(Void... arg0) { ppObject = PayPal.initWithAppID(getBa

我正在尝试在我的应用程序中执行“使用贝宝支付”按钮

以下是我单击此按钮时的代码:

class PaypalTask extends AsyncTask<Void, Void, Void> {
        protected final char[] TOTAL_GBP=null;

        public Void doInBackground(Void... arg0) {
            ppObject = PayPal.initWithAppID(getBaseContext(), "APP-80W284485P519543T", PayPal.ENV_SANDBOX);

            return null;
        }

        @Override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            btnPaypal = ppObject.getCheckoutButton(getApplicationContext(), PayPal.BUTTON_278x43, CheckoutButton.TEXT_PAY);
            RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            params.addRule(RelativeLayout.CENTER_HORIZONTAL);
            params.addRule(RelativeLayout.CENTER_VERTICAL);
            btnPaypal.setLayoutParams(params);
            rlPay.addView(btnPaypal);
            if(utils.prefs.getBoolean("isLogged", false)) btnPaypal.setVisibility(View.VISIBLE); else btnPaypal.setVisibility(View.GONE);

            btnPaypal.setOnClickListener(new OnClickListener(){
                public void onClick(View view) {

                    // to check whether there are any books in the shopping cart
                    if(!cid.isEmpty()){
                        PayPalPayment payment = new PayPalPayment();
                        payment.setSubtotal(new BigDecimal(TOTAL_GBP));
                        payment.setCurrencyType("GBP");
                        payment.setRecipient(Utils.PAYPAL_ACCOUNT);
                        payment.setPaymentType(PayPal.PAYMENT_TYPE_GOODS);
                        Intent checkoutIntent = PayPal.getInstance().checkout(payment, getBaseContext());
                        startActivityForResult(checkoutIntent, 1);
                    }else{
                        utils.showToast("Your shopping cart is empty.");
                        // The PayPal button needs to be updated so that the user can click on it again.
                        btnPaypal.updateButton();
                    }
                }   
            });
        }
    }
它可以工作,但显示的结账价值为8.25英镑。但我希望它从由total_GBP定义的购物车小计中获得价值。当我使用TOTAL_GBP而不是“8.25”或任何双浮点值时,它就会崩溃


有什么想法吗?

TOTAL_GBP
null
,因为您没有给它赋值!它不应该从购物车小计中获得价值吗?是否有其他方法为其赋值?举个例子会有帮助。
03-23 11:56:33.539: E/AndroidRuntime(739): FATAL EXCEPTION: main
03-23 11:56:33.539: E/AndroidRuntime(739): java.lang.NullPointerException
03-23 11:56:33.539: E/AndroidRuntime(739):  at java.math.BigDecimal.<init>(BigDecimal.java:406)
03-23 11:56:33.539: E/AndroidRuntime(739):  at com.fokrul.justdeals.ActivityTab$PaypalTask$1.onClick(ActivityTab.java:1587)
03-23 11:56:33.539: E/AndroidRuntime(739):  at android.view.View.performClick(View.java:3110)
03-23 11:56:33.539: E/AndroidRuntime(739):  at com.paypal.android.MEP.CheckoutButton.onClick(Unknown Source)
03-23 11:56:33.539: E/AndroidRuntime(739):  at android.view.View.performClick(View.java:3110)
03-23 11:56:33.539: E/AndroidRuntime(739):  at android.view.View$PerformClick.run(View.java:11934)
03-23 11:56:33.539: E/AndroidRuntime(739):  at android.os.Handler.handleCallback(Handler.java:587)
03-23 11:56:33.539: E/AndroidRuntime(739):  at android.os.Handler.dispatchMessage(Handler.java:92)
03-23 11:56:33.539: E/AndroidRuntime(739):  at android.os.Looper.loop(Looper.java:132)
03-23 11:56:33.539: E/AndroidRuntime(739):  at android.app.ActivityThread.main(ActivityThread.java:4123)
03-23 11:56:33.539: E/AndroidRuntime(739):  at java.lang.reflect.Method.invokeNative(Native Method)
03-23 11:56:33.539: E/AndroidRuntime(739):  at java.lang.reflect.Method.invoke(Method.java:491)
03-23 11:56:33.539: E/AndroidRuntime(739):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
03-23 11:56:33.539: E/AndroidRuntime(739):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
03-23 11:56:33.539: E/AndroidRuntime(739):  at dalvik.system.NativeStart.main(Native Method)
payment.setSubtotal(new BigDecimal("8.25"));