在React Native

时间:2018-02-18 09:40:56

标签: java android reactjs react-native react-native-android

我正在尝试为我的简单React Native应用程序创建本机Java包。

我使用react-native init创建了项目,添加了一些屏幕和react-navigation

之后我跟着The Toast Module

我的手机通过USB连接,每个React代码运行完美,但Java代码没有。

render()方法的一个屏幕中,我添加了简单的

import React, { Component } from "react"
import { NativeModules } from "react-native"

export default class TestScreen extends Component {
    render() {
        console.log(NativeModules, NativeModules.ToastModule)

        return (
            // something
        )
    }
}

在这段代码的结果中,我获得了React Native提供的所有本机模块和我的个人模块的undefined值的对象。

我转到android/app/src/main/java/com/myproject/MainApplication.java并将getPackages()方法替换为此

@Override
protected List<ReactPackage> getPackages() {
    return Arrays.<ReactPackage>asList( // Disable all modules for example
        // new MainReactPackage(),
        // new ManagerPackage()
    );
}

通常情况下,这两个包都是未注释的。

之后我尝试在手机上运行应用程序

$ react-native run-android --deviceId MYDEVICEID

控制台输出的某些部分是

Building the app...

BUILD SUCCESSFUL in 8s
52 actionable tasks: 2 executed, 50 up-to-date

应用程序启动但我得到console.log(...) - 对象和undefined值的相同结果。

我执行时

$ cd android/
$ ./gradlew clean
$ cd ..
$ react-native run-android --deviceId ...

我收到app/build/outputs/apk/app-debug.apk下的文件不存在的错误。

当我按this回答时,我还必须将android/app/build/outputs/apk/debug/app-debug.apk文件复制到android/app/build/outputs/apk/app-debug.apk

它没有解决我的问题 - 当我在MainApplication.java文件中取消注释我的包时,我的原生模块无效,而且我也无法禁用MainReactPackage

我的问题是:如何成功重建我的项目(包括Android版本的Java文件)?

0 个答案:

没有答案