ReactNative使用支付宝支付报错:方法不会覆盖或实现超类型的方法react-native-yunpeng-alipay

根据项目需求需要集成支付宝支付,如果报了以下错误,仅需注释四行代码就可以搞定哟!

我使用的是 react-native-yunpeng-alipay

当根据文档在Android上集成的时候,运行时报错:如下:

 

/Users/abysskitty/Desktop/RNProject/KakouApp/node_modules/react-native-yunpeng-alipay/android/src/main/java/com/yunpeng/alipay/
AlipayPackage.java:25: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
1 个错误
:react-native-yunpeng-alipay:compileReleaseJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-yunpeng-alipay:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 26.017 secs
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/android-setup.html

 

 

在提示的错误中明确指出了

 

 

AlipayPackage.java:25: 错误: 方法不会覆盖或实现超类型的方法
    @Override
    ^
1 个错误
:react-native-yunpeng-alipay:compileReleaseJavaWithJavac FAILED

 

 

错误原因解析:因为在安卓中 @Override是复写父类的方法,而它的父类没有这个方法,所以不能复写。

因为你报错的这个方法在老版本的RN中是存在的,估计这个三方是以前用的老版本,新版本没有这个方法了,注释掉就可以了。

 

解决办法:根据下面图片打开这个文件,注释掉报错的代码就好了。

 

我为大家提供了两种操作方法,会用androidstudio的和不会用的

第一种:AndroidStudio操作方法:(下面有直接从文件夹的操作方法)

 

 

这个错误其实就是这个 AlipayPackgae 实现的ReactPachger接口里没有注释掉的那个方法了,所以找不到就报错了。

 

第二种:项目文件夹内进行操作。

如果你不会用AndroidStudio,也可以直接在ReactNative项目中寻找。

具体目录如下所示:

打开ReactNative根目录下的node_modules文件夹
找到react-native-yunpeng-alipay文件夹并打开
依次打开目录:
android -> src -> main -> java -> com -> yunpeng -> alipay -> AlipayPackage.java
最后打开这个文件并注释掉这段代码

/**
 * Created by m2mbob on 16/5/6.
 */
public class AlipayPackage implements ReactPackage {

    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>();
        modules.add(new AlipayModule(reactContext));
        return modules;
    }

//    @Override
//    public List<Class<? extends JavaScriptModule>> createJSModules() {
//        return Collections.emptyList();
//    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return Collections.emptyList();
    }
}

 

问题就这么简单的解决了(仅需注释四行代码)。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值