2

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

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

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

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

4

2 回答 2

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);
});

希望以某种方式有所帮助

于 2011-08-30T01:39:47.563 回答
0

您能否指定有关此方法的更多信息?它是一种贝宝库方法吗?我认为 PayPal.ENV_SANDBOX 是您必须设置的一些环境变量。顾名思义,此设置用于测试目的或开发(实际上不进行任何付款)。我想您可能会在库文档中找到有关此方法的更多信息。第二个问题是,您是否使用了正确的 appId?基础上下文是正确使用的上下文吗?也许您必须使用 getApplicationContext,请参见此处此处

于 2011-08-29T11:15:52.910 回答