当你看到 "Suppressed: java.lang.Exception: Storage[...] registration stack trace" 这个错误时,别慌,这通常是 Gradle 缓存出了点小问题。
具体来说,是你在编译 Kotlin 代码(尤其是在用 device_info_plus 这类插件)的时候,Gradle 的缓存机制卡住了。大部分情况是因为文件被锁了,或者缓存本身坏掉了。
下面教你几招搞定它:
招式一:干掉 Java 进程 (最常用)
这是最常见也最好用的法子。多半是上次编译的 Gradle 进程或者某个 Java 实例还没死透,把缓存文件给霸占了。
- Windows 用户: 打开 任务管理器 -> 详细信息 标签页。
- macOS 用户: 打开 活动监视器,然后搜 "Java"。
找到所有叫 java.exe (Windows) 或 java (macOS) 的进程,然后把它们全都结束掉。如果不确定哪个是,可以看看哪个占内存比较多,或者干脆一个个地试着关,看看问题解决了没。把 Gradle 守护进程(Gradle Daemon)对应的那个 Java 进程干掉,效果通常立竿见影。
招式二:清理并重建项目
确保没有 Java 进程捣乱之后,给你的项目来个“大扫除”。
在你的项目根目录里,依次敲下面这两个命令:
bash
flutter clean
flutter pub get然后,重新跑一下你的项目:
bash
flutter run或者,你也可以只编译特定的平台:
bash
flutter build apk
flutter build ios招式三:清除 IDE 缓存 (IDE 用户专属)
如果你用的是 Android Studio 或者 VS Code,IDE 自己也有一套缓存,有时候也会跟着捣乱。
- Android Studio: 点击菜单栏的
File->Invalidate Caches / Restart...,然后选Invalidate and Restart。 - VS Code: 简单粗暴,直接重启 VS Code 就行。
终极绝招:手动删除 Gradle 缓存 (高级玩法)
如果上面几招都不灵,那就只能上绝招了:手动删掉 Gradle 的缓存。
- 根据错误信息里提到的路径,找到那个出问题的缓存文件夹。比如
F:\Project\App\NoteApp-colorScheme\build\device_info_plus\kotlin\compileReleaseKotlin\cacheable\caches-jvm。 - 直接把整个
caches-jvm文件夹删掉。
下次你编译的时候,Gradle 会自动重新生成一个新的缓存。
按照这几步操作下来,那个烦人的文件锁定问题应该就能解决了,你的项目也能顺利编译通过了。