繁体   English   中英

Flutter 更改 package 名称时,应用程序不起作用

[英]Flutter App doesn't work when changing package name

当我尝试在 kotlin 内的 MainActivity.kt 中更改 package 名称时,应用程序无法运行

这个错误:

e: /Users/dma/development/flutter_share/android/app/src/main/kotlin/com/example/souqmubtath/MainActivity.kt: (8, 7): Redeclaration: MainActivity
e: /Users/dma/development/flutter_share/android/app/src/main/kotlin/dev/dhari/souqmubtath/MainActivity.kt: (8, 7): Redeclaration: MainActivity

FAILURE: Build failed with an exception.                                

* What went wrong:                                                      
Execution failed for task ':app:compileDebugKotlin'.                    
> Compilation error. See log for more details                           

* Try:                                                                  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org                              

BUILD FAILED in 27s                                                     
Running Gradle task 'assembleDebug'...                                  
Running Gradle task 'assembleDebug'... Done                        27.6s
Gradle task assembleDebug failed with exit code 1

您没有正确更改 package 名称,

只需 go 到以下路径

android > app > src >main > kotlin

在里面你会发现另外一个 package 像your_package_name包含 MainActivity 文件。

在您的情况下,它就像“com.example.souqmubtath”

所以要正确更改它,只需 go 到您的 android 清单文件,从那里找到 package="com.example.souqmubtath"

只需 select com.example.souqmubtath 并重构它。

对于重构select package 名称->右键单击它 -> Refactor -> Rename 或者只是select package 名称并使用重构重命名快捷方式,即Shift+F6

您可以将其重命名为所需的 package 名称。 在你的情况下,它就像“dev.dhari.souqmubtath”

此外,go 到您的android > app > build.gradle文件路径。 在文件和defaultConfig{}中找出applicationId并将其重构为与您的 package 名称相同的名称。

您必须在顶部的MainActivity.kt中更新 package 名称。

如果这是正确的,那么检查您的清单文件,是否更新了 package 名称?

您的应用程序无法运行的只有两个原因。

Flutter遇到的问题

包名:com.[公司名].[二进制名]

就我而言, android/app/src/main/kotlin/com/ 中有两个文件夹

在这个文件夹中有:

  • 示例/二进制/*
  • 公司名/二进制/*

由于在 flutter 创建命令之后 packagename 中的 companyname 被初始化为 example,我推断应该删除 example 文件夹

问题解决了

flutter --version
Flutter 2.2.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision f4abaa0735 (9 weeks ago) • 2021-07-01 12:46:11 -0700
Engine • revision 241c87ad80
Tools • Dart 2.13.4

有一个有用的 package 可以更改它,但它适用于 android,我没有尝试 IOS。

首先安装 package:

更改应用程序包名称:^1.0.0

然后在项目路径的终端中执行以下命令:

flutter 酒吧得到

在此处输入代码

然后写下下面的行,并在 com 之后使用您想要的唯一名称。 然后按回车:

flutter pub run change_app_package_name:main com.demo.flutter_app 将更新文件并删除旧的 package 名称。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM