我正在学习 Flutter,并专注于数据库,但一直无法使用它们。 添加 Isar 和 ObjectBox 数据库的依赖项后出现错误,但 Hive 似乎可以工作。 将数据库依赖项添加到我的 pubspec.yaml 后,我无法再运行我的项目而不会出现如下错误:
任务“:objectbox_flutter_libs:parseDebugLocalResources”执行失败。
无法解析配置“:objectbox_flutter_libs:androidApis”的所有文件。 无法转换 android.jar 以匹配属性 {artifactType=android-platform-attr, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime}。 > PlatformAttrTransform 执行失败:C:\Users\REDACTED\AppData\Local\Android\sdk\platforms ndroid-31 ndroid.jar。 > C:\Users\REDEACTED\AppData\Local\Android\sdk\platforms ndroid-31 ndroid.jar
我按照快速入门指南添加依赖项,并将它们放置在 pubspec 中的正确标题下并执行 Flutter Pub Get。从那时起,即使我继续使用构建运行程序创建数据库实体/类并设置数据库,我也会收到上述错误(我认为这可能是最初的原因)。
依赖关系:
flutter:
sdk: flutter
cupertino_icons: ^1.0.8
objectbox: ^4.0.2
objectbox_flutter_libs: any
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^4.0.0
build_runner: ^2.4.13
objectbox_generator: any
我搜索了解决方案,发现了很多关于 android SDK 和 Java 的解决方案。
我安装了 android studio,并尝试通过 android studio 更改和重新加载 android SDK 和 Java 版本,因为 Gradle 设置为通过包装器构建。
对于 Java,当尝试使用不同的 Java 版本时,我已将 JAVA_HOME 环境变量以及 android studio 中的 Java 版本设置为相同的位置。
我安装并尝试过的JDK版本包括17.0.12、19.0.2和21.0.3,对错误没有影响。
我已经检查了 Isar 和 ObjectBox 的依赖版本,以确保它们是最新的(我没有在一个项目中同时使用两者)。 我的 Dart、Flutter、Git、VS Code 和 Android Studio 安装都是最新的。
我安装了 android 12、14、15 SDK。安装命令行工具和SDK平台工具。 Flutter 版本 3.24.3、Dart 3.5.3、Devtools 2.37.3。 Android Studio 瓢虫。 Gradle 是 Android studio gradle 8.7.0。
Flutter doctor 仅针对 chrome 给出错误(我没有安装 chrome)。
我已经按照安装指南有效安装和使用了 Android studio、VS Code、Flutter/Dart,并且在尝试使用数据库(Isar 或 ObjectBox)时使用了它们的指南。
我无法找到这个特定问题的答案,非常感谢您的意见。
还有其他明显我忽略的事情吗?
该错误表明 Android SDK 存在问题:
Execution failed for PlatformAttrTransform: C:\Users\REDACTED\AppData\Local\Android\sdk\platforms\android-31\android.jar.
您说您已尝试“重新加载android SDK”。您能否仔细检查一下您是否按照相关 Flutter 问题中的建议进行了操作: