Flutter项目无法在Android设备运行:编译Debug Kotlin任务失败求助
我来帮你一步步解决这个问题,结合你提到的设备差异(三星J7正常、A7报错)和报错信息,主要有两个核心问题需要处理:Gradle编译时的arm64依赖解析异常,以及connectivity插件的API过时提示,我们逐个解决:
一、解决:app:compileDebugKotlin的依赖解析错误
这个错误大概率是Gradle缓存损坏或者64位架构的依赖配置问题,尝试以下步骤:
清理并刷新Gradle缓存
首先执行Gradle清理命令,强制刷新依赖:gradlew clean gradlew build --refresh-dependencies如果还是不行,手动删除本地Gradle缓存目录:
C:\Users\Admin\.gradle\caches,然后重新运行flutter run。添加ABI架构过滤配置
三星A7是64位设备(arm64-v8a),而J7是32位(armeabi-v7a),在app/build.gradle的defaultConfig中添加NDK架构过滤,确保构建时正确生成对应架构的包:defaultConfig { // 保留你原有的配置... ndk { abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64' } }验证Flutter SDK完整性
你的Flutter版本是1.20.2,报错中提到的arm64_v8a_debug.jar可能存在损坏,尝试重新下载Flutter SDK,或者切换到同频道的小版本更新(比如1.20.4),避免SDK文件缺失。
二、处理connectivity插件的过时API提示
你使用的connectivity:0.4.9版本确实依赖了Android的过时API,官方已经停止维护该插件,推荐使用它的迭代版本connectivity_plus:
替换插件依赖
在pubspec.yaml中替换原依赖:dependencies: # connectivity: 0.4.9 connectivity_plus: ^5.0.1 # 可使用最新稳定版执行
flutter pub get更新依赖。适配代码导入
仅需修改代码中的导入语句,核心检测逻辑完全兼容:// import 'package:connectivity/connectivity.dart'; import 'package:connectivity_plus/connectivity_plus.dart';这样就能消除编译时的过时API提示。
三、额外的设备适配检查
针对三星A7的Android 10系统,确认以下配置:
网络权限配置
确保android/app/src/main/AndroidManifest.xml中包含必要的网络权限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />Gradle与Kotlin版本匹配
在项目根目录的build.gradle中,确保Android Gradle插件和Kotlin版本匹配(与你的Flutter 1.20.2兼容):buildscript { ext.kotlin_version = '1.3.72' repositories { google() jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.6.3' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" } }
完成以上步骤后,重新运行flutter run或者flutter build apk,应该能解决三星A7上的编译错误,并消除插件过时提示。
内容的提问来源于stack exchange,提问作者Anu

