【问题标题】:Changing the project name更改项目名称
【发布时间】:2017-10-11 17:22:19
【问题描述】:

是否可以更改 Flutter 项目的项目名称?项目名称是指您在创建flutter项目时提供的名称flutter create name

【问题讨论】:

    标签: flutter


    【解决方案1】:

    这取决于您要达到的目标。如果要更改手机菜单中显示的应用程序名称以及应用程序图标,则必须更改android/app/src/main/AndroidManifest.xml中的android:label(代码示例1)和@中的CFBundleName 987654324@(代码示例 2)。

    上次我这样做时,我花了很长时间才发现,为什么在 Android 上当前运行的应用程序列表中没有更改应用程序的名称。为此,您还需要更改 MaterialApp 的标题(代码示例 3)。

    为了在任何地方重命名它,我建议在项目中使用搜索和替换。如果这样做,您必须选择一个没有空格或特殊字符的名称。例如,pubspec.yaml 中的项目名称“新项目”将破坏构建。

    代码示例 1:

    <application
        android:name="io.flutter.app.FlutterApplication"
        android:label="New Name"
        android:icon="@mipmap/ic_launcher">  
    

    代码示例 2:

    <key>CFBundleName</key>
    <string>New Name</string>
    

    代码示例 3:

    return new MaterialApp(
      title: 'New Name'
      ...);
    

    【讨论】:

    • 当我这样做(并更新相应的import "package:projectname/..." 语句)时,我仍然会收到错误消息,指出无法构建我的依赖关系树。还有什么要改名的吗? (我也在重命名项目文件夹)。
    【解决方案2】:

    要更改项目名称,您需要为所有平台更改它。

    您可以使用 rename 包来简化操作。
    在您的 Flutter 项目根目录中运行此命令

    pub global run rename --appname "Application Name"
    

    您还可以指定要应用更改的平台

    pub global run rename --appname yourappname -t macOS  // support also ios and android
    

    编辑AndroidManifest.xml for Android 和info.plist for iOS

    如果您遇到问题,请发送flutter clean 并重新启动您的应用程序。

    【讨论】:

      【解决方案3】:

      要添加到 Rainer 的答案,您可能还必须更改 android/app/build.gradle 下的 com.example.myprojectname 文件

      对于 com.example.myprojectname,也不要使用下划线(即: com.example.my_project_name)

      您可能还需要在文件 project.pbxproj 和 MainActivity.java 中查找并替换 com.example.myproject 名称。

      【讨论】:

        【解决方案4】:

        如果您想更改项目名称,只需在所有这些文件中进行更改即可。

        1. build.gradle(应用)
        2. AndroidManifest.xml
        3. MainActivity.java

        重建您的应用程序,您应该一切顺利。

        【讨论】:

        • 如果您在 Android Studio 中尝试此操作,请右键单击包文件夹(即 com.example.oldname)并选择 Refactor &gt; Rename...。该对话框将帮助您重命名所需的所有内容,并让您查看将要更改的内容。
        • @CopsOnRoad 仅在 Android 上更改对吗? ios呢
        • @BloodLoss 在 iOS 中更改 BundleName
        【解决方案5】:

        你可以让 Flutter 为你做这件事:

        使用终端:

        cd /path/to/existing/flutter_project
        flutter create --project-name newprojname --org com.yourorgdomain .
        

        接下来在 pubspec.yaml

        的第 1 行更改名称

        删除所有生成的文件夹以删除旧项目名称的所有引用。

        NB - 一些导入语句需要有它们的包引用 手动更新为新名称。审查项目结构(在 您的 IDE)用于对 IDE 中旧项目名称的任何引用 生成的文件。

        使用项目文件夹中的flutter create .(包括末尾的空格和句点)重新创建已删除的生成文件。

        现在运行flutter clean,然后正常调试

        陷阱

        您应该期望项目名称仍然存在于为各种环境和 cmets/strings 生成的所有文件夹中。您可以使用工具搜索项目或文件夹结构中的所有文件(例如,Android Studio 中的 Cmd + Shift + F 或 Homebrew 中的 ag {the_silver_searcher})以查找旧名称并丢弃任何生成的文件夹,包括 ios、windows、linux。删除生成的文件夹后,记得运行flutter create . 重新创建它们

        【讨论】:

          【解决方案6】:

          如果您使用的是 Android Studio,请按照以下步骤操作:

          1. 在“项目”窗口中右键单击您的项目(Alt+1 显示)。
          2. 单击重构 > 重命名。
          3. 输入新名称。

          这将在除测试目录之外的所有必需位置重命名项目的名称。

          【讨论】:

            【解决方案7】:

            重命名项目的步骤:(适用于具有跨项目搜索和替换功能的编辑器)

            • 在整个项目功能中使用 VSCode 的任何其他编辑器的搜索和替换。但始终打开match cases(对于vscode:位于右侧)。
              • 您必须这样做两次,因为第一次您必须将 com.orgname.currentname 替换为 com.orgname.newname 然后
              • currentnamenewname
            • /android/app/src/main/kotlin/com/orgname/currentname 中的文件夹重命名为新的/android/app/src/main/kotlin/com/orgname/newname
            • 如果您仅使用带有 Flutter 的 Java,则不要将 kotlin 替换为 java
            • 将根项目文件夹的currentname.iml 重命名为newname.iml

            【讨论】:

              【解决方案8】:

              Ctrl+Shift+R 然后替换进行一一替换
              或一次全部替换
              请注意,如果您的项目名称与其他变量或类名称相似,请不要这样做。在进行两次检查之前。

              【讨论】:

              • 真的很危险。不应将其作为答案。
              【解决方案9】:

              1-flutter clean

              2- 搜索并用NEW_PROJECT_NAME替换所有OLD_PROJECT_NAME

              3- 在项目文件夹中搜索OLD_PROJECT_NAME,并一一替换为NEW_PROJECT_NAME。其中一些在文本文件中,请确保您也已更改它们。

              【讨论】:

                【解决方案10】:

                如果您使用的是 Android Studio,请从菜单 > 编辑 > 查找 > 在文件中替换 > 输入新旧名称...

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-04-18
                  • 2016-08-05
                  • 1970-01-01
                  • 2011-06-24
                  • 2018-06-10
                  • 2020-12-08
                  相关资源
                  最近更新 更多