initWithAppID命令崩溃



我是Android编程新手,尤其是PayPal。我得到了一个应用程序,它的任务是解决问题-尽管是新的Android,在这一行崩溃:

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

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

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

不知道这是否会有帮助,但这是我在测试PayPal时如何修复的。ENV_NONE (from 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);
});

希望能有所帮助

您能详细说明这个方法吗?它是一个贝宝库方法吗?我想是PayPal。ENV_SANDBOX是你必须设置的环境变量。该名称表明该设置用于测试目的或开发(实际上不进行任何支付)。我认为您可以在库文档中找到有关此方法的更多信息。第二个问题是,你是否使用了正确的应用程序id ?基上下文是正确的上下文吗?也许你需要使用getApplicationContext,看这里和这里

最新更新