我使用了模块react-native-paypal,但是在集成到Android时,在运行Android时抛出了一些错误,这是error的屏幕截图。
这是显示错误的代码
MainActivity.java
package com.camp;
import com.facebook.react.ReactActivity;
import android.content.Intent; // <--
public class MainActivity extends ReactActivity {
//public static Activity activity;
//private static final int PAY_PAL_REQUEST_ID = 9
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 9) {
payPalPackage.handleActivityResult(requestCode, resultCode, data); // <--
} else {
otherModulesHandlers(requestCode, resultCode, data);
}
}
@Override
protected String getMainComponentName() {
return "Camp";
}
}
MainApplication.java
package com.camp;
import android.app.Application;
import android.util.Log;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactInstanceManager;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import br.com.vizir.rn.paypal.PayPalPackage;
import java.util.Arrays;
import java.util.List;
public class MainApplication extends Application implements ReactApplication {
private static final int PAY_PAL_REQUEST_ID = 9; // <-- Can be any unique number
private PayPalPackage payPalPackage; // <--
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
payPalPackage = new PayPalPackage(PAY_PAL_REQUEST_ID); // <--
return Arrays.<ReactPackage>asList(
payPalPackage, // <--
new MainReactPackage()
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
}
请给我有关如何解决此错误的建议。任何帮助深表感谢
修改完我的代码后,但仍然遇到问题,请参见下图
请给我建议如何解决这些类型的错误
react-native中的paypalcode
paypal(){
PayPalAndroid.paymentRequest({
clientId: '............',
environment: PayPalAndroid.SANDBOX,
price: '0.01',
currency: 'EUR',
description: 'PayPal Test'
}).then((confirm, payment) => console.log('Paid'))
.catch((error_code) => console.error('Failed to pay through PayPal'));
}
在这里我不是写控制台,而是写警报,但是它不显示警报,我尝试了很多次,没有收到成功警报或捕获警报,请给我一些解决建议
最佳答案
npm注册表上的react-native-paypal版本及其存储库尚未更新为可运行最新的react-native版本。您可以改用此叉子https://github.com/sharafat/react-native-paypal。
package.json
"dependencies": {
"react": "15.4.1",
"react-native": "0.38.0",
"react-native-paypal": "https://github.com/sharafat/react-native-paypal.git"
},
MainActivity.java
...
import android.content.Intent;
import com.facebook.react.ReactActivity;
public class MainActivity extends ReactActivity {
/**
* Returns the name of the main component registered from JavaScript.
* This is used to schedule rendering of the component.
*/
@Override
protected String getMainComponentName() {
return "ReactNativePayPalTest";
}
@Override
public void onActivityResult(final int requestCode, final int resultCode, final Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == MainApplication.PAY_PAL_REQUEST_ID) { // <--
((MainApplication) getApplication()).payPalPackage.handleActivityResult(requestCode, resultCode, data); // <--
} else {
// otherModulesHandlers(requestCode, resultCode, data);
}
}
}
MainApplication.java
...
import android.app.Application;
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import java.util.Arrays;
import java.util.List;
import br.com.vizir.rn.paypal.PayPalPackage;
public class MainApplication extends Application implements ReactApplication {
public static final int PAY_PAL_REQUEST_ID = 9; // <-- Can be any unique number
public PayPalPackage payPalPackage;
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
@Override
protected boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
@Override
protected List<ReactPackage> getPackages() {
payPalPackage = new PayPalPackage(PAY_PAL_REQUEST_ID);
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
payPalPackage
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
关于paypal - 集成使用react-native-palal在android中引发错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40785561/