【问题标题】:React Native iOS and Android folders not presentReact Native iOS 和 Android 文件夹不存在
【发布时间】:2017-10-31 09:59:38
【问题描述】:

我是本机反应的新手,我在理解应用程序的文件夹结构时遇到了一些麻烦,应该在创建时出现在项目文件夹中。基本上,当使用 npm 创建项目时,我会得到一些启动文件(App.js 等)和一个 node_modules 文件夹。我已经使用 expo 启动并运行它,它也创建了 .expo 文件夹。

但是,当我查看 react 的官方文档或查看 git 上的插件/插件时,他们多次谈到项目根目录中的 android 和 iOS 文件夹。但他们无处可寻。然后我得到一些提示,我可以安装和运行 react-native-upgrade-git,据称它会生成这些丢失的文件夹。但这也没有用。

那么我错过了什么?这些文件夹在哪里?

编辑:这是来自 Youtube 教程的屏幕转储,显示了我正在寻找的项目结构:

【问题讨论】:

    标签: android ios react-native expo


    【解决方案1】:

    在 React Native 之上的 Expo 的一个要点是,您不会使用 android 或 ios 代码。 Expo 为您处理这些文件夹,您无需与它们交互。你有需要这些文件夹的理由吗?如果是这样,您将不得不弹出。这是这样做的文档:Ejecting with ExpoKit

    【讨论】:

    • 我不确定的原因除其他外,必须使用以下插件:github.com/auth0/react-native-lock。在阅读提供的自述文件时,似乎我需要访问文件夹并做一些恶作剧。还是 npm install 行就够了?感谢您的回答。
    • 在你 npm 安装库之后。你应该进入你的终端“react-native link react-native-lock”。如果我是正确的,除非您将项目分离到 Expokit,否则 Expo 不会让您这样做。查看我的答案中的链接。
    • 连接 ar 和 react-native
    • 如何在没有 android 文件的情况下从 react native 获取 apk?
    • 链接已损坏。
    【解决方案2】:

    你可以通过运行得到那个项目结构:

    npm run eject
    

    但是,它从 Expo 框架中删除了该应用程序,这为 Android/iOS 代码添加了许多不错的好处和抽象。

    【讨论】:

    • 之后怎么办? xcode 运行不正常@Danny Sullivan
    【解决方案3】:

    我认为如果您想使用 ReactNative 开发应用程序,请开始关注:Getting Started use React Native

    如果您使用ReactNative 创建项目,只需在您的终端上写:

    react-native init YourProjectName
    cd YourProjectName
    react-native run-ios //for iOS
    

    希望我的回答能帮助您使用 ReactNative 创建项目。谢谢..

    【讨论】:

    • 这个答案应该得到更多的关注。我强烈建议您编辑此答案,以进一步解释来自 facebook 的其他 cli 内置了 expo,重点是不必编辑本机代码。通过这种方式,您可以更深入地使用 ios 和 android 目录。我自己也知道这一点,但现在仍然必须搜索正确的 cli 来设置我的新计算机。当我注意到您的回答时,我正要自己回答这个问题。谢谢!我认为,如果您向此添加更多内容,人们最终会发现并对其进行更多投票。
    • 完全同意。这个答案确实应该得到更多的关注。
    【解决方案4】:

    试试这个来生成 Android 和 iOS 文件夹

    react-native eject
    
    react-native link
    

    【讨论】:

    • "expoject" 为我工作..它同时创建了 android 和 IOS 文件夹
    【解决方案5】:

    我想我有点晚了,但如果您不想阅读任何文档,请按照以下步骤操作。

    使用 expo 创建 react native 项目时,android 和 ios 文件夹不存在。所以你必须从你的项目中分离出 expo 来创建 android 和 ios 文件夹。

    首先在 app.json 文件中添加所需的包名

        ios: {
           bundleIdentifier: "com.yourcompany.yourappname",
        },
        android: {
           package: "com.yourcompany.yourappname",
        }
    

    然后在终端中运行下面的命令

    exp detach
    

    命令执行成功后会找到android和ios文件夹

    【讨论】:

    【解决方案6】:

    按照他的指示添加到 Funk Soul Ninja 的答案(谢谢!:)),对于那些从 Expo 项目开始的人:

    expo run:ios
    

    为我做了诀窍。

    该命令创建包含可以在 Xcode 中编辑和构建的项目的 ios 文件夹。

    我没有做这一步,但我相信expo run:android 对 Android 做了类似的事情;但我建议查看Expo documentation on adding custom native code

    【讨论】:

      【解决方案7】:

      删除文件夹androidios

      npm i react-native-eject
      react-native eject
      

      【讨论】:

        【解决方案8】:

        在开始安装 react native 后,运行 expo init YourProject ,选择 minimal (Typescript) 。之后转到 YourProject 目录,不要运行 npm start。但运行 npm run android。希望对您有所帮助

        【讨论】:

        【解决方案9】:

        这对我有用:转到设置并从“文件:排除”中删除两个条目“android”和“ios”。不要忘记这两种环境 - 用户和工作区。

        删除工作区上的条目:

        ... 用户也一样:

        【讨论】:

          【解决方案10】:

          我必须运行expo eject。为什么我没有这些文件夹背后的故事是因为一些损坏的依赖关系而不得不降级我的 react-native 应用程序,然后我得到了构建失败。所以我删除了 ios 和 android 文件夹,然后运行 ​​expo eject 并修复了所有构建问题。请注意,我通过包 json 中的脚本使用 expo 命令行,以便版本与我的项目使用的版本匹配。

          【讨论】:

            【解决方案11】:

            我知道的最简单的方法

            1) 从您当前的 app.json 中获取您的应用名称,假设名称为“mynativeapp”

            2) 在当前项目文件夹之外的某个位置创建一个新文件夹

            3) 从它开始:

            react-native init mynativeapp

            4) 上面的命令将使 android 和 ios 文件夹在名称上与您的项目内部兼容

            5) 将 android/ios 文件夹复制到您的项目文件夹中

            现在您可以尝试启动您的原生项目。我检查了Android:

            react-native run-android

            享受吧!

            附: “反应”:“16.9.0”,“反应原生”:“0.61.4”

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2016-07-02
              • 1970-01-01
              • 1970-01-01
              • 2020-07-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多