我是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,看这里和这里