【原创】Exception: Gradle build failed to produce an .apk file. It's likely that this file was genera......

为了解决这个问题我刚开始的方向是错了,包括群里问人,发issues,谷歌搜索

https://github.com/flutter/flutter/issues/95722

首先 要确认一下app有没有生成,
app项目生成在build/app/outputs下,
模块则是另外的地方,我这里是已经生成的,而且从欧五提示的目录也是正常的,但是提示不够详细,因此导致我绕了半天。

unning Gradle task 'assembleDebug'... (completed in 26.5s)
[   +2 ms] LocalFile: 'C:\project\flutter\sotrunx\android\build.gradle' provides AGP version: 4.1.0
[   +2 ms] Exception: Gradle build failed to produce an .apk file. It's likely that this file was generated under C:\project\flutter\sotrunx\build, but the tool couldn't find it.
[        ] "flutter run" took 29,521ms.
[   +3 ms] 
           #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
           #1      RunCommand.runCommand (package:flutter_tools/src/commands/run.dart:684:9)
           <asynchronous suspension>
           #2      FlutterCommand.run.<anonymous closure> (package:flutter_tools/src/runner/flutter_command.dart:1161:27)
           <asynchronous suspension>
           #3      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #4      CommandRunner.runCommand (package:args/command_runner.dart:209:13)
           <asynchronous suspension>
           #5      FlutterCommandRunner.runCommand.<anonymous closure> (package:flutter_tools/src/runner/flutter_command_runner.dart:281:9)
           <asynchronous suspension>
           #6      AppContext.run.<anonymous closure> (package:flutter_tools/src/base/context.dart:150:19)
           <asynchronous suspension>
           #7      FlutterCommandRunner.runCommand (package:flutter_tools/src/runner/flutter_command_runner.dart:229:5)
           <asynchronous suspension>
           #8      run.<anonymous closure>.<anonymous closure> (package:flutter_tools/runner.dart:62:9)

如果没有生成,就flutter build -v 输出一下,而我上面是看不到任何详细的错误的,最后我追踪了源码

Never _exitWithExpectedFileNotFound({
  required FlutterProject project,
  required String fileExtension,
  required Logger logger,
  required Usage usage,
}) {
  assert(project != null);
  assert(fileExtension != null);

  final String androidGradlePluginVersion =
  getGradleVersionForAndroidPlugin(project.android.hostAppGradleRoot, logger);
  BuildEvent('gradle-expected-file-not-found',
    type: 'gradle',
    settings:
    'androidGradlePluginVersion: $androidGradlePluginVersion, '
      'fileExtension: $fileExtension',
    flutterUsage: usage,
  ).send();
  throwToolExit(
    'Gradle build failed to produce an $fileExtension file. '
    "It's likely that this file was generated under ${project.android.buildDirectory.path}, "
    "but the tool couldn't find it."
  );
}

追踪

_exitWithExpectedFileNotFound
image.png
image.png

我的项目是.metadata是定义的project_type: app没错,但是pubspec.yaml

下面# module:节点没有注释,所以导致程序查找错了位置,因此注释掉此处解决,

为什么出现这种问题呢?

是因为我本来就是模块开发,但是发现测试很多不方便,干脆写了一个app项目,把lib,assets和yaml都拷贝过去,为了解决这个问题,我把包名都保持一致,都没有找到根本原因,
根据源码终于找到问题所在。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值