将React Native项目导入Android Studio

7
我在打开/导入React Native到Android Studio时遇到了一些问题。
  1. 如果我使用“打开项目”对话框打开项目,它会告诉我该项目未启用gradle,并且更改和测试代码非常麻烦。即使在查看帮助网站的材料后,我也无法找到如何将项目作为gradle项目启用的方法。
  2. 另一方面,如果我使用“导入Gradle项目”对话框并选择build.gradle文件进行导入,项目被成功导入,但我只能看到android目录中的文件而不是主项目目录中的文件。但这种方法可以让我轻松地将更改推送到模拟器。
  3. 我该如何解决我的问题?

谢谢,

你选择了哪个文件夹来用 Android Studio 打开工程?应该是 "android" 文件夹。 - agenthunt
是的,我用了android文件夹。在IDE中,我可以看到android文件夹里面的所有内容。然而,对于react-native,似乎惯例是把主要的js文件放在android文件夹外的另一个文件夹中,因为它在iOS和Android版本之间共享。因此,我想要能够编辑js文件,但由于文件夹在android文件夹之外,我看不到它。我必须使用一个单独的编辑器,比如Sublime,才能访问js文件。这不是理想的,因为我必须不停地在Android Studio、Sublime和模拟器之间切换。 - Gavin Ang
1个回答

4

只需从Android Studio导入android目录, 更改你的app/build.gradle文件, 在apply from: "../../node_modules/react-native/react.gradle"之前添加以下代码

project.ext.react = [
        bundleAssetName: "index.android.bundle",
        entryFile: "index.android.js",
        bundleInDebug: false,
        bundleInRelease: true,
        root: "../../",
        jsBundleDirDebug: "$buildDir/intermediates/assets/debug",
        jsBundleDirRelease: "$buildDir/intermediates/assets/release",
        resourcesDirDebug: "$buildDir/intermediates/res/merged/debug",
        resourcesDirRelease: "$buildDir/intermediates/res/merged/release",
        inputExcludes: ["android/", "ios/"],
        nodeExecutableAndArgs: ["node"],
        extraPackagerArgs: []
]

现在为"react-native start"创建一个gradle任务。
task startReactNative(type: Exec) {
    workingDir "../../"
    commandLine  'cmd', '/c', 'react-native', 'start'
    println "Working Directory for React is: $workingDir"
    standardOutput = new ByteArrayOutputStream()
    ext.output = {
        println "React-Native Output: " + standardOutput.toString()
        return standardOutput.toString()
    }
}

您可以像往常一样运行应用程序,在将应用程序安装到设备后,运行 startReactNative 任务以激活热重载功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接