Flutter打包APK时vibrate包资源链接失败问题求助
哥们,从你贴的报错信息来看,核心问题就是vibrate插件的Android资源和你升级Android Studio 4.0后的项目SDK配置不兼容——那些找不到的android:attr/font*属性都是高版本Android SDK才支持的,加上你之前执行了pub cache repair,可能把插件的依赖缓存搞乱了。下面给你几个针对性的解决步骤,亲测有效:
1. 先把vibrate插件更到最新版
旧版本的vibrate大概率没适配AndroidX或者高版本gradle,先打开你的pubspec.yaml,把vibrate的版本更到pub.dev上的最新稳定版:
dependencies: flutter: sdk: flutter vibrate: ^1.3.0 # 去pub.dev查下最新版,替换成对应版本即可
然后执行flutter pub get拉取新的依赖包。
2. 强制所有插件和主项目用统一的SDK版本
很多插件默认的SDK版本比你主项目低,就会出现这种资源找不到的冲突。你得强制子模块(包括vibrate)和主项目对齐编译版本:
- 打开项目根目录的
android/build.gradle,找到ext块(没有就手动添加):
ext { compileSdkVersion = 33 // 用你项目当前支持的最高稳定版,比如31/33都行 minSdkVersion = 21 targetSdkVersion = 33 }
- 接着在同一个文件里添加
subprojects配置,强制所有子模块对齐版本:
subprojects { afterEvaluate { if (project.hasProperty("android")) { android { compileSdkVersion rootProject.ext.compileSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion } } } configurations.all { resolutionStrategy.eachDependency { details -> // 强制androidx.core用最新版,避免旧版本的资源冲突 if (details.requested.group == 'androidx.core' && details.requested.name.startsWith('core')) { details.useVersion "1.10.1" } } } }
3. 确认AndroidX和Jetifier处于开启状态
在android/gradle.properties里确保这两项配置是开启的,Jetifier会自动把旧的Support库转换为AndroidX,解决大部分兼容性问题:
android.useAndroidX=true android.enableJetifier=true
4. 彻底清理缓存,别只清Flutter的
光执行flutter clean不够,得把gradle的缓存也彻底清理:
- 执行
flutter clean - 删除项目内的
android/.gradle文件夹 - 删除你用户目录下的
.gradle/caches(就是报错里的C:\Users\plest\.gradle\caches) - 重新执行
flutter pub get,然后尝试打包:flutter build apk
额外排查:NDK配置问题
你verbose日志里提到找不到strip工具,这是NDK配置的问题。打开Android Studio的SDK Manager,安装Side by Side的NDK(比如25.2.9519653),或者给对应ABI安装NDK组件,就能解决这个警告。
如果以上步骤都没用,你可以新建一个Flutter项目,只引入vibrate插件尝试打包。要是能正常打包,说明是你当前项目的配置有问题,逐步把配置迁移过去即可。
内容的提问来源于stack exchange,提问作者Milvintsiss

