如何将我的 VIsual Studio Code 构建的应用程序发布为 APK?

Posted

技术标签:

【中文标题】如何将我的 VIsual Studio Code 构建的应用程序发布为 APK?【英文标题】:How can I publish my VIsual Studio Code built application as an APK? 【发布时间】:2021-11-06 16:10:22 【问题描述】:

我正在尝试在 Visual Studio Code 中构建 App Bundle,但它总是失败并显示:

    FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:shrinkReleaseResources'.
> org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 7; Attribute "keep" bound to namespace "http://schemas.android.com/tools" was already specified for element "resources".

* 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

这是我在项目中使用的依赖项:

  dependencies:
  flutter:
    sdk: flutter

  sqflite: ^2.0.0+3
  intl: ^0.17.0
  syncfusion_flutter_calendar: ^19.2.62
  provider: ^5.0.0
  cupertino_icons: ^1.0.2  
  material_design_icons_flutter: ^5.0.5955-rc.1
  curved_navigation_bar: ^1.0.1
  responsive_text_field: ^0.1.4
  flutter_datetime_picker: ^1.5.1
  datetime_picker_formfield: ^2.0.0
  flutter_local_notifications: ^8.1.1+1
  table_calendar: ^3.0.2
  shared_preferences: ^2.0.8
  shared_preferences_web: ^2.0.2
  firebase_auth: ^3.1.2
  cloud_firestore: ^2.5.3
  firebase_core: ^1.7.0
  flutter_spinkit: ^5.1.0
  fluttertoast: ^8.0.8
  image_picker: ^0.8.4+2
  image_cropper: ^1.4.1
  photo_view: ^0.13.0
  rxdart: ^0.27.2
  badges: ^2.0.1
  profanity_filter: ^2.0.0

当我遇到问题时,我什么时候运行--stacktrace 来找出错误。我在终端中尝试过,但那里似乎没有 stacktrace 命令。

【问题讨论】:

请将代码和数据添加为文本 (using code formatting),而不是图像。图片:A)不允许我们复制粘贴代码/错误/数据进行测试; B) 不允许根据代码/错误/数据内容进行搜索;和many more reasons。除了代码格式的文本之外,只有在图像添加了一些重要的东西,而不仅仅是文本代码/错误/数据传达的内容时,才应该使用图像。 看起来你必须检查你的 android XML 资源。也许你添加了工具:保持两次。 分享你的 AndroidManifest.xml 文件,我猜问题出在你的 XML 文件上,你在配置 firebase 时是否对其进行了编辑? 【参考方案1】:

首先,

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

请使用--debug--scan 运行并在此处粘贴输出。没有太多信息,很难发现错误。

其次,

org.xml.sax.SAXParseException;行号:6;列号:7;已为元素“resources”指定了绑定到命名空间“http://schemas.android.com/tools”的属性“keep”。

这与资源文件有关。请列出您在 Flutter 应用中使用的插件(例如粘贴您的 pubspec.yaml)。同时列出你对flutter app的android目录做了哪些修改。

【讨论】:

抱歉,我现在更新了我的问题。你可以再看一遍 @AdrianAlejo 请使用 --debug 或 --scan 显示日志详细信息 我应该在哪里运行--debug--scan @AdrianAlejo 这是一个 android studio 选项【参考方案2】:

为了构建一个没有错误的颤振 apk,我总是执行以下操作(在终端上):

flutter build apk --no-shrink

【讨论】:

它对我不起作用 它给出了什么错误?一样吗? 是的,同样的错误【参考方案3】:

你也可以试试这个:

    在 android 平台上清理、构建和运行项目。 然后在this之类的android文件夹中打开它。 然后按照生成普通的android签名.apk步骤,如this。

注意:确保打开项目的android文件夹必须是同步、干净、构建和无错误的,然后才能生成android singed apk。

【讨论】:

【参考方案4】:

对于调试 APK:

flutter build apk

对于发布 APK:

flutter build apk --release

对于应用程序包:

flutter build appbundle

【讨论】:

【参考方案5】:

从项目根目录中删除 .idea 文件夹。删除 pubspec.lock。运行flutter clean,然后flutter pub get再试一次。

【讨论】:

以上是关于如何将我的 VIsual Studio Code 构建的应用程序发布为 APK?的主要内容,如果未能解决你的问题,请参考以下文章

如何将文件添加到已删除的存储库(Visual Studio Code)?

Visual Studio Code 如何解决与 git 的合并冲突?

Visual Studio Code 中的垂直列?

有没有办法在实例之间同步我的 Visual Studio Code 设置?

Visual Studio Code 忽略打字稿版本设置

将 Visual Studio Code 设置为我的 Mac 的默认编辑器(包括编辑 Git 提交)