initWithAppID命令崩溃了

时间:2011-08-29 11:07:12

标签: android paypal-sandbox

我是Android编程的新手,尤其是PayPal。我得到了一个负责排除故障的应用程序 - 尽管是Android的新手,但是在这一行崩溃了:

initWithAppID(this.getBaseContext(), appID, PayPal.ENV_SANDBOX);

首先,PayPal.ENV_SANDBOX总是返回一个0,我不确定它是否应该这样做。其次,为什么它总是崩溃?我在网上搜索了原因,人们说它是因为它没有完全初始化这就是为什么它失败了。现在我想知道如果我无法初始化这个库我需要做什么?

我正在使用Eclipse IDE,在Samsung Galaxy Tab Android 2.2上进行测试

2 个答案:

答案 0 :(得分:1)

不知道这是否会有所帮助,但这是我在使用PayPal.ENV_NONE(来自https://github.com/phonegap/phonegap-plugins/blob/master/Android/PayPalPlugin/src/com/phonegap/plugin/mpl.java)测试时修复它的方法

PayPal pp = PayPal.getInstance();
if (pp == null) {
    try {
        pp = PayPal.initWithAppID(getApplicationContext(), "", PayPal.ENV_NONE);
    } catch (IllegalStateException e) {
        throw new RuntimeException(e);
    }
    pp.setShippingEnabled(false);
}

然后在创建按钮时:

PayPal pp = PayPal.getInstance();
CheckoutButton cb = pp.getCheckoutButton(
        getBaseContext(), 
        PayPal.BUTTON_194x37, 
        CheckoutButton.TEXT_PAY);
cb.setOnClickListener(new OnClickListener() {
    PayPalPayment payment = new PayPalPayment();
    // set subtotal etc ...
    Intent i = PayPal.getInstance().checkout(payment,getApplicationContext());
    startActivityForResult(i, 1);
});

希望有所帮助

答案 1 :(得分:0)

您能指定有关此方法的更多信息吗?它是paypal库方法吗? 我认为PayPal.ENV_SANDBOX是你必须设置的一些环境变量。该名称表明此设置用于测试目的或用于开发(实际上不进行任何付款)。 我想您可以在库文档中找到有关此方法的更多信息。 第二个问题是,你使用过正确的appId吗?基础上下文是否适合使用?也许您必须使用getApplicationContext,请参阅herehere