Flutter,后台获取包不工作,androidx 不兼容

2024-03-13

我想在应用程序未运行时进行一些操作,所以我决定使用后台提取包。我一步步按照android设置 这是我的 pubspec.yaml 的一部分

version: 1.0.0+1

environment:
  sdk: ">=2.1.0 <3.0.0"

dependencies:
  flutter:
    sdk: flutter


  google_maps_flutter: ^0.5.16
  geolocator: ^5.1.1
  flutter_local_notifications: ^0.7.1+1
  shared_preferences: '0.5.6+3'
  background_fetch: '^0.5.1'

这是我的 AndroidManifest.xml 的一部分

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="firenzepuliziastrade.firenze_pulizia_strade">
    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
         calls FlutterMain.startInitialization(this); in its onCreate method.
         In most cases you can leave this as-is, but you if you want to provide
         additional functionality it is fine to subclass or reimplement
         FlutterApplication and put your custom class here. -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
    <uses-permission android:name="android.permission.VIBRATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <application
        tools:replace="android:label"
        android:name="io.flutter.app.FlutterApplication"
        android:label="Firenze Pulizia Strade"
        android:icon="@mipmap/ic_launcher">

这是我的 app/build.gradle 的一部分

android {
    compileSdkVersion rootProject.ext.compileSdkVersion


    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "firenzepuliziastrade.firenze_pulizia_strade"
        minSdkVersion 16
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

}


dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}

这是我的 android/build.gradle 的一部分

buildscript {
    ext.kotlin_version = '1.3.50'
    ext {
        compileSdkVersion   = 28                // or higher
        targetSdkVersion    = 28                // or higher
        appCompatVersion    = "1.1.0"           // or higher
    }

    repositories {
        google()
        jcenter()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.5.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {
            // [required] background_fetch
            url "${project(':background_fetch').projectDir}/libs"
        }
    }
}

这是我的 gradle.properties

org.gradle.jvmargs=-Xmx1536M
android.enableR8=true
android.useAndroidX=true
android.enableJetifier=true

我什至尝试了额外的步骤来启用 Headless 机制,尽管我认为这没有必要,因为我的 flutter 版本是 Flutter 1.12.13 并且我最近创建了这个项目。 但话虽如此,我无法让应用程序在不运行时做一些工作,它只是在后台工作。所以我认为原因是我在调试模式下启动应用程序,并尝试在发布模式下启动它,但出现以下错误:

Launching lib/main.dart on POT LX1 in release mode...
Running Gradle task 'assembleRelease'...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':path_provider:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Android resource linking failed
     /home/nik/.gradle/caches/transforms-2/files-2.1/0a271e99b6771ad4a84318244d532fb7/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/fontVariationSettings not found.

     /home/nik/.gradle/caches/transforms-2/files-2.1/0a271e99b6771ad4a84318244d532fb7/core-1.0.0/res/values/values.xml:57:5-88:25: AAPT: error: resource android:attr/ttcIndex not found.


* 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 7s
The built failed likely due to AndroidX incompatibilities in a plugin. The tool is about to try using Jetfier to solve the incompatibility.
Building plugin background_fetch...
Running Gradle task 'assembleAarRelease'...
Finished with error: ProcessException: Permission denied
  Command: /home/nik/Desktop/Pulizia_Strade/flutter/.pub-cache/hosted/pub.dartlang.org/background_fetch-0.5.6/android/gradlew -I=/home/nik/Desktop/Pulizia_Strade/flutter/packages/flutter_tools/gradle/aar_init_script.gradle -Pflutter-root=/home/nik/Desktop/Pulizia_Strade/flutter -Poutput-dir=/home/nik/Desktop/Pulizia_Strade/firenze_pulizia_strade/build/app -Pis-plugin=true -Ptarget-platform=android-arm,android-arm64,android-x64 assembleAarRelease

我尝试创建一个新的 flutter 项目,指定 androidx,但它不起作用,我得到了同样的错误。有人可以帮助我吗,我现在真的不知道该怎么办......


您的应用程序似乎与 AndroidX 不兼容。到目前为止,您已经完成了一些故障排除,但尚未使其正常工作。尝试仔细检查AndroidX 迁移指南 https://docs.flutter.dev/development/androidx-migration如果你没有错过任何事情。

到目前为止,您已经通过添加以下行来启用 Jetifier[project_folder]/android/app/gradle.properties

android.useAndroidX=true
android.enableJetifier=true

现在尝试通过添加此行来启用 multidexdefaultConfig of [project_folder]/app/build.gradle

defaultConfig {
    ...
    multiDexEnabled true
}

然后升级gradle中的依赖[project_folder]/android/build.gradle file:

classpath 'com.android.tools.build:gradle:4.1.0'

指定的 flutter 中使用的最新版本here https://github.com/flutter/flutter/blob/master/packages/flutter_tools/gradle/flutter.gradle.

接下来,确保您的所有包裹都在pubspec.yaml都是最新版本。

最后,运行flutter clean并重建您的项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Flutter,后台获取包不工作,androidx 不兼容 的相关文章

  • 从 Spring Boot 发送推送通知

    我有一个 springboot 应用程序 托管在我自己的家庭服务器上 我也有 sql 数据库设置 对于前端 我计划使用 android 进行初始测试阶段 然后将其转移到 flutter 我想知道如何将通知从 Spring Boot 发送到前
  • flutter 检测 url 并显示预览

    我正在尝试制作一个类似于 wats app 的链接预览功能 它有两个部分 从文本字段检测 URL 显示该 URL 的预览 第 2 部分有很多插件可以显示预览 但我一直坚持第 1 部分 即如何检测和解析用户在文本字段中输入的 URL 还有一个
  • 如何在 Flutter 中为 Button 添加渐变?

    有没有办法改变ElevatedButton背景颜色渐变 如果没有一些小瑕疵或问题 例如缺少涟漪效应 不需要的边框 不尊重主题的内容 上述所有解决方案都无法真正发挥作用minWidth对于按钮 The 下面的解决方案没有上述问题 关键部分是使
  • 将多个身份验证提供商链接到一个帐户

    我已经实现了 Facebook 和 Google 登录 但 FireBase 文档称 如果同一用户首先使用 Facebook 注册 然后尝试使用 Google 登录 使用相同的电子邮件 这将导致错误 所以我按照文档并尝试配置帐户关联 但我不
  • Flutter:删除按钮中的填充 - FlatButton、ElevatedButton、OutlinedButton

    我希望删除 FlatButton 的默认边距 但似乎无法设置 覆盖它 Column children
  • 当模拟器存在时 Flutter 应用程序不运行

    模拟器在那里 但当我启动应用程序时它不起作用 请帮忙 我已经尝试了一切 Cal Flutter 新手 我已遵循安装指南并尝试了其他堆栈流答案的修复 我正在运行 Windows 8 1 单一用户 我已经从命令提示符和 android 终端中尝
  • 当子可滚动部件到达颤振顶部时,如何自动开始滚动父可滚动部件

    这似乎很自然 甚至可能是预料之中的 但我仍然没有找到任何可能有帮助的东西 我在另一个可滚动小部件 父级 中有一个 ScrollablePositionedList 几乎与 ListView 相同 我尝试过 CustomScrollView
  • 如何在 Flutter 中对 RaisingButton 的颜色进行动画处理?

    我有一个RaisedButton 我想要animate它的颜色来自green to red 反之亦然 每次用户单击它时 这怎么能做到呢 您可以使用AnimatedContainer https api flutter dev flutter
  • 我想将对象列表添加到 firestore 文档中,-flutter

    我想将对象列表添加到 firestore 文档 我定义了产品数据模型 我还有类别数据模型 我想将类别列表添加到 firestore 中的产品文档中 我将类别添加到临时列表 然后将值放入product categories 产品 类别 类别t
  • 如何在flutter中实现字母滚动

    有没有任何插件或方法可以在 flutter 中实现这种滚动 具体来说 右侧的字母列 例如突出显示当前字母表字母 或者如果点击某个字母 则滚动视图会直接转到该字母标题 为了按字母顺序排序 我们可以这样做List sort 对于粘性标题 我们也
  • 带 NestedScrollview 的 RefreshIndicator

    我想要 2 个带有 ListView 的选项卡页共享一个 RefreshIndicator 但是 RefreshIndicator 必须具有 Scrollable 作为子级 TabBarView 则不然 因此我尝试为每个选项卡创建 2 个
  • Charts_flutter x 轴上的标签/文本相互重叠

    我使用flutter中的charts flutter包渲染条形图 但 x 轴上的域标签相互重叠 我有办法解决这个问题吗 有没有办法倾斜文本或增加图表的宽度 使其可以水平滚动 我尝试过寻找任何解决方案 例如 labelspecs 但无法找到解
  • 如何在 Flutter 中删除/减少 CheckboxListTile 的文本和复选框之间的空间?

    如何减少 删除下图中 CheckboxListTile 和文本之间的空间 看来以下行仅删除了周围的空间 CheckboxListTile title Text Account number not available contentPadd
  • 如何更改文本字段颤动内部的值?

    我有一个TextEditingController如果用户单击按钮 它就会填写信息 我似乎不知道如何更改 a 中的文本Textfield or TextFormField 有解决办法吗 只需更改text财产 TextField contro
  • Flutter:一张带有圆形头像的卡片,非常引人注目

    我想做一张卡片CircleAvatar 突出显示 您可以在这张图片中看到详细信息 我不知道它是如何工作的 我尝试了一些Stack和定位小部件 但它不起作用 Stack确实是解决方案 Stack children
  • ListView 和快照 - 错误 - 错误状态:DocumentSnapshotPlatform 中不存在字段[重复]

    这个问题在这里已经有答案了 我对快照和 ListView 有一个小问题 到目前为止 它运行得很好 但自从我更新了 flutter 和 Dart 后 我 收到了一个错误 构建 StreamBuilder gt 时抛出以下 StateError
  • Flutter:如何移动文本字段字符计数器?

    标题很好地总结了这个问题 我有一个TextField with a maxLength 250这就是它的样子 有没有办法把柜台放在其他地方 最好位于发送按钮的左侧 但也可能位于发送按钮的上方和左侧TextField 有任何想法吗 谢谢 可能
  • BottomAppBar浮动操作按钮凹口/插入不透明

    我添加了一个BottomAppBar到材质应用程序中的脚手架 并且我添加了一个在中心带有插图的工厂 代码看起来有点像这样 Scaffold bottomNavigationBar BottomAppBar color Theme of co
  • 如何更改 Flutter 中的默认字体系列

    如何更改应用程序的每个文本以使用特定字体 我可以使用以下命令单独更改它们TextStyle 但如何让我的应用程序默认使用特定字体 你能告诉我怎么做吗 您可以按照以下步骤更改 Flutter 应用程序的默认字体系列 1 将字体文件添加到项目文
  • 打开键盘会导致有状态小部件重新初始化

    我在 Stable 分支中使用 Flutter 1 2 1 为了说明我的问题 假设我有页面 A 和 B A 使用以下命令导航到 BNavigator pushB 使用以下命令导航回 ANavigator pop 两者都是有状态的小部件 当我

随机推荐

  • 禁用键盘 :: TextInput React Native

    下面给出的代码在第一次和第二次点击时有效 在相同的文本输入上它不起作用 键盘再次打开 因为文本输入已经聚焦 并且我正在使用自定义数字按钮进行输入 TextInput onFocus Keyboard dismiss 有什么建议么 原生反应的
  • HTML5 中是否可以实现类似 Photoshop 的混合模式?

    我想放一个红色矩形 div 元素在我的网页上 这样它不仅看起来是透明的 而且就像在 Photoshop 的乘法模式中混合的一样 The div 将有position fixed 所以下面的内容会很快改变 任何 HTML5 CSS3 canv
  • 自动打开第一张 Fancybox 图片

    单击链接后 我将从 JSON get 中引入一些图像 然后单击其中一张图片时可以显示图库 但我希望第一张图像立即出现 作为一旦JSON 已加载 这可能吗 我的代码是 json get css cursor pointer click fun
  • 在 tr 上使用 :hover 时出现 CSS 边框问题

    我试图在数据表中突出显示鼠标所在的行 我正在尝试用 border top 和 border bottom 来做到这一点 为了提高可读性 我还在交替行上放置了一个浅色透明的 png 似乎当我打开和关闭边框 适用于 IE8 和 FF 时 行会稍
  • 如何将 PHYLIP 格式转换为 FASTA

    我刚刚开始使用 perl 我有一个问题 我有 PHYLIP 文件 我需要将其转换为 FASTA 我开始写剧本 首先 我删除了行中的空格 现在我需要对齐所有行 每行应包含 60 个氨基酸 并且序列标识符应打印在新行中 也许有人可以给我一些建议
  • 时间耦合与工作单元

    所以 正如一直以来向我指出 https stackoverflow com questions 16148924 value types inferred as object at runtime when using dynamic 16
  • Node.js console.log 是否有长度限制?

    Node js 中 console log 输出的长度有限制吗 下面的代码打印 56462 之前的数字 然后停止 出现此问题是因为我们从 MySQL 返回数据集 并且输出将在 327k 个字符后退出 var out for i 0 i lt
  • 从 C# 运行 Bash 命令

    我试图弄清楚如何从在 IIS 7 Net 4 5 上运行的 C 运行 bash 命令 我一直在网上搜索 很多答案都假设您已经安装 就位了某些东西 我已经有了Git 1 9 4 msysgit 2与 Git Bash 和 Git Giu 一起
  • 如何列出 iOS 中开放的端口?

    我正在使用一个 已越狱设备 我想要写一个应用程序列出打开的端口 例如 TCP 端口 我有两个想法 使用一些本机 API 获取打开的端口列表 执行 shell 命令以获取打开的端口列表并解析此 shell 命令的结果 我应该使用哪个 API
  • 如何在 recyclerview 上设置 OnClickListener 而不取决于位置

    我希望 onclicklistener 方法打开与对象相关的活动 entidad1 entidad2 或 entidad3 MainActivity java 上的 OnRecipe 方法 我希望它能够实现 如果 entidad1 出现 它
  • 根据插入时间从 std::map 中删除元素

    我需要根据插入时间 或其他比这更有效的方法 从 std map 中删除元素 该地图可能会包含数千个元素 如果我存储时间并迭代地图以检查每个元素的时间 那么最终可能会非常耗时 有谁知道如何在 std map 变老时删除它们 The std m
  • double 是否会使方程中的每个 int 都加倍?

    是否存在一种浮点数据类型 例如double 确保所有 等数学运算都假定双操作数 如果故事比这更复杂 是否有描述这些规则的资源 我是否应该不问这样的问题并始终明确地投射int to double当方程的结果是double 这是我正在考虑的一些
  • 首次加载时仅加载一次广告 (div)

    我想知道如何才能让一个 div 具有要加载的广告或仅在第一次加载页面时可见 但每次刷新页面时隐藏它 我只有用 Jquery 加载 div 的代码 但不知道刷新页面后如何隐藏它 document ready function referral
  • UINavigationBar自定义过渡动画

    我使用以下协议在视图控制器之间创建了自定义转换 UIViewControllerAnimatedTransitioning and UIViewControllerTransitioningDelegate 是否可以使用默认的UINavig
  • 是什么让这两个数组相加不同?

    我用它来获取用户输入并清理代码 我试图解决这个问题 然后代码停止工作 这有效 BindVar array BindVar Email BindVar pass 然而 这并没有 BindVar array Email pass 这是当我更改该
  • Flask-SQLAlchemy 小写索引 - 跳过功能,SQLAlchemy 反射不支持

    首先 如果这个问题已经得到解答 我深表歉意 但我在任何地方都找不到答案 我需要在 Flask SQLAlchemy 对象上定义一个小写索引 我遇到的问题是我需要将模型用户名和电子邮件字段存储为小写 以便我可以检查它们User query f
  • DI Singleton 实例与 Transient 实例

    几年前 IoC 性能指南指出 IoC 容器应仅用于解析长期实例 基本上是单例 而应使用单例工厂 由容器保存 创建瞬态类型对象 我现在正在阅读有关 ASP NET Core 的内容 我看到的几个示例对其注入的对象使用瞬态生命周期 现在瞬态是提
  • 如何在 Meteor 提供的服务器中设置环境变量?

    我想在远程服务器上测试流星谷歌分析包 设置 json public ga account UA dfgddhdh 5 在本地服务器中 我只是传入 settings选项 我在看http meteorpedia com read Environ
  • 如何在各种单独的文件中分离与特定模式匹配的文件名和内容

    我试图将与特定模式匹配的文件名分离到一个单独的文件中 并将其内容分离到与特定模式匹配的不同文件中 我的文件名包含特殊字符 如 我尝试使用 grep 命令 Grep Ril 和 Grep H 打印文件名 但它不起作用 bin bash cd
  • Flutter,后台获取包不工作,androidx 不兼容

    我想在应用程序未运行时进行一些操作 所以我决定使用后台提取包 我一步步按照android设置 这是我的 pubspec yaml 的一部分 version 1 0 0 1 environment sdk gt 2 1 0 lt 3 0 0