Javascript Can';不要使用我的React原生Android模块中的方法

Javascript Can';不要使用我的React原生Android模块中的方法,javascript,java,android,module,react-native,Javascript,Java,Android,Module,React Native,我想为Android制作一个react本机模块,但我无法访问该模块的方法。它抛出错误“Undefined不是对象”。我的代码有什么问题 在本例中,我想在按下按钮时调用foo()方法 我的代码如下: TestModule.java public class TestModule extends ReactContextBaseJavaModule { public TestModule(ReactApplicationContext reactContext) { supe

我想为Android制作一个react本机模块,但我无法访问该模块的方法。它抛出错误“Undefined不是对象”。我的代码有什么问题

在本例中,我想在按下按钮时调用foo()方法

我的代码如下:

TestModule.java

public class TestModule extends ReactContextBaseJavaModule {
    public TestModule(ReactApplicationContext reactContext) {
        super(reactContext);
    }

    @Override
    public String getName() {
        return "TestModule";
    }

    @ReactMethod
    public void foo(){

    }
}
TestPackage.java

public class TestPackage implements ReactPackage{
    @Override
    public List<NativeModule> createNativeModules(ReactApplicationContext reactContext) {
        List<NativeModule> modules = new ArrayList<>();

        modules.add(new TestModule(reactContext));

        return modules;
    }

    @Override
    public List<Class<? extends JavaScriptModule>> createJSModules() {
        return null;
    }

    @Override
    public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
        return null;
    }
}
public类TestPackage实现了ReactPackage{
@凌驾
公共列表createNativeModules(ReactApplicationContext reactContext){
列表模块=新的ArrayList();
modules.add(新的TestModule(reactContext));
返回模块;
}
@凌驾
公共列表我解决了它


在TestPackage.java文件中,
createJSModules()
createViewManagers()
方法应该返回
Collections.emptyList()
而不是返回
null

确保清理和重建gradle项目,您的代码看起来很好。我如何清理gradle项目?我是否删除了一些内容?
    public class MainApplication extends Application implements ReactApplication {

        private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
            @Override
            public boolean getUseDeveloperSupport() {
            return BuildConfig.DEBUG;
            }

            @Override
            protected List<ReactPackage> getPackages() {
            return Arrays.<ReactPackage>asList(
                new MainReactPackage(),            
                new TestPackage(), //Added my TestPackage
                new ToastPackage()
            );
            }
        };

        @Override
        public ReactNativeHost getReactNativeHost() {
            return mReactNativeHost;
        }

        @Override
        public void onCreate() {
            super.onCreate();
            SoLoader.init(this, /* native exopackage */ false);
        }
    }
import React, { Component } from 'react';
import {
AppRegistry,
StyleSheet,
Text,
View,
Button,
NativeModules,
} from 'react-native';

var toast = NativeModules.Toast;
var test = NativeModules.TestModule;

export default class RNModuleTest extends Component {

    showToast(){
        toast.show("Hello from toast", toast.LONG);
    }

    showTest(){
        test.foo();
    }

    render() {
        return (
        <View style={styles.container}>
            <Button title="Toast" onPress={this.showToast}/>
            <Button title="testModule" onPress={this.showTest} />

        </View>
        );
    }
}