问题标签 [flutter-build]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
536 浏览

flutter - Flutter中的flutter build bundle和appbundle有什么区别?

我几乎没有找到关于这两者之间有什么区别的信息

我什么时候应该使用其中一种?

0 投票
1 回答
151 浏览

ios - Flutter 在运行 build 或 run 时抛出错误

当我尝试运行或运行颤振项目时,我不断得到这个

0 投票
1 回答
223 浏览

flutter - 如何在颤振中构建apk时排除文件

在为我的颤振应用程序构建apk时,我需要避免构建中的文件。我已经尝试通过 build.yaml 中的以下代码,但它不起作用

0 投票
0 回答
42 浏览

flutter - 我们可以在flutter中构建apk时单独排除特定文件吗

我的项目中有 2 种产品风格,我不希望在构建.apk或应用程序包时添加一些文件,并且以下解决方案不起作用。

0 投票
1 回答
64 浏览

flutter - VS Code中flutter中的资源和资产合并错误

PS E:\flutter_proj\myapps\eb_bill_tracker> 颤振构建 apk --release

没有健全的空安全性的建筑有关更多信息,请参阅https://dart.dev/null-safety/unsound-null-safety

E:\flutter_proj\myapps\eb_bill_tracker\android\app\src\main\res\values\styles.xml:20:3:资源和资产合并:元素类型“style”必须以匹配的结束标签“终止”。org.xml.sax.SAXParseException;行号:20;列号:3;元素类型“style”必须以匹配的结束标签“”结束。在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203) 在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:177)在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:400) 在 com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)在 com.sun.org.apache.xerces.internal.impl.XMLScanner。在此处输入图像描述ultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) at org.gradle.launcher .exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45) at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50) at org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java :47) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47) 在 org.gradle.launcher.exec 的 org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:78)。在ProcessBuildActionExecuter。在 org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28) 在 org.gradle.execute(BuildTreeScopeBuildActionExecuter.java:42) 执行(InProcessBuildActionExecuter.java:31) .tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52) at org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter .execute(SubscribableBuildActionExecuter.java:59) 在 org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:36) 在 org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute(SessionScopeBuildActionExecuter.java:68) 在 org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37) 在 org.gradle.execute(SessionScopeBuildActionExecuter.java:38) 在 org.gradle .tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26) 在 org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43) 在 org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter .execute(ParallelismConfigurationBuildActionExecuter.java:29) 在 org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60) 在 org.gradle.tooling.internal.provider。StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java: 41) 在 org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32) 在 org.gradle.launcher 的 org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48) .daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) 在 org.gradle.launcher.daemon.server .api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39) 在 org .gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:27) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher .daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server .exec.ForwardClientInput$2.create(ForwardClientInput.java:78) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75) 在 org.gradle。org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) 的 org.gradle.launcher.daemon.server.api.DaemonCommandExecution 的 util.Swapper.swap(Swapper.java:38)。 org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution. java:104) 在 org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:82) 在 org.gradle .launcher.daemon。server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec。 StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52) at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy. java:64) at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$ Worker.run(ThreadPoolExecutor.java:624) 在 org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) 在 java.lang。线程.run(线程.java:748)

FAILURE:构建失败并出现异常。

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。失败:构建失败并出现异常。

  • 出了什么问题:任务“:app:mergeReleaseResources”执行失败。

E:\flutter_proj\myapps\eb_bill_tracker\android\app\src\main\res\values\styles.xml: Error: Found item Style/LaunchTheme more than one time

  • 尝试:使用 --stacktrace 选项运行以获取堆栈跟踪。使用 --info 或 --debug 选项运行以获得更多日志输出。运行 --scan 以获得完整的见解。

  • 在https://help.gradle.org获得更多帮助

BUILD FAILED in 7s Running Gradle task 'assembleRelease'... Running Gradle task 'assembleRelease'... Done 8.3s Gradle task assembleRelease failed with exit code 1 PS E:\flutter_proj\myapps\eb_bill_tracker>

0 投票
0 回答
38 浏览

flutter - Flutter build runner - 通过命令行启用/禁用构建器

我在 Flutter 项目中,我们正在使用build_runner.

我们正在使用几个构建器,并且运行所有这些构建器需要很长时间。我们的文件如下所示:


现在假设我在项目中应用了一些更改,我需要运行构建器。但我知道,只有一些构建器需要运行,而其他构建器不需要运行(比如说builder2and builder3)。

现在,当我跑步时

它正在运行所有构建器,并且需要很长时间。


有没有办法使用命令行运行特定的构建器?

0 投票
4 回答
1502 浏览

flutter - 不要跨异步间隙使用 BuildContexts

我注意到我的项目中有一个新的 lint 问题。

长话短说:

我需要在我的自定义类中使用 BuildContext

与 aysnc 方法一起使用时,flutter lint 工具不满意。

例子:

0 投票
2 回答
77 浏览

json - Flutter List.Builder 获取 JSON

这是我的代码:

在执行 initStae() 时,它将 _usersDisplay.length 打印为100,但仅返回 LoadingView()。它不显示 UserTile()。

检查_usersDisplay.length内部构建时,它始终为 0。为什么?

也不能这样定义List : List<User> _users = List<User>();

0 投票
0 回答
263 浏览

flutter - Flutter 测试 - 强制重建小部件

我正在尝试为我的颤振小部件编写测试。

假设我有这个有状态的小部件:

当小部件重建时,它会查看来自的值是否已getNewValue更改并重建自身,然后使用WidgetsBinding.instance.addPostFrameCallback. getNewValue(我只希望小部件在重建时执行此操作,在我的情况下不需要订阅)。

无论如何,我为此编写了一个测试以及我在哪里抽取小部件

效果很好。

但现在我想强制小部件重建以测试其行为。

这就是我设法做到的(我称之为setState):

这也很好用。


但是,调用setState会引发警告

这个技巧对StatelessWidget


我想知道在颤振测试中强制重建小部件的正确方法是什么?

0 投票
1 回答
16 浏览

flutter - 有没有办法在为 Apk 构建时不包含某些文件夹?

我必须使用在网络和手机上运行的颤振构建一个项目,有没有办法在为 APK 构建时不包括一些文件夹,因为有些文件只在网络中需要。所以如果我有这些文件夹:

  • 网络
  • 移动的
  • 常见的

我需要仅使用移动通用文件夹构建 APK。有可能还是我必须将项目分成网络和手机?