Flutter 3.22编译报错hvigor no such file or directory如何解决,copyfile arm64-v8a\ap问题排查

在Flutter 3.22编译时遇到报错:“hvigor no such file or directory”,同时出现"copyfile arm64-v8a\ap"问题。具体表现为编译过程中无法找到hvigor文件,且arm64-v8a目录下的文件复制失败。请问如何解决这两个问题?已尝试清理项目并重新构建,但问题依旧存在。

2 回复

Flutter 3.22编译报错hvigor: no such file or directory通常与HarmonyOS相关。解决方法:

  1. 检查项目是否包含HarmonyOS模块,若不需要可删除oh-package.json5文件。
  2. 清理项目:运行flutter clean并重新构建。
  3. 确保Flutter SDK和HarmonyOS工具链版本兼容。

若问题持续,检查项目配置中是否误启用了HarmonyOS支持。

更多关于Flutter 3.22编译报错hvigor no such file or directory如何解决,copyfile arm64-v8a\ap问题排查的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


这个错误通常与Flutter项目中的原生代码编译和资源文件处理相关。以下是系统性的排查步骤:

1. 清理并重新构建项目

flutter clean
flutter pub get
cd android
./gradlew clean
cd ..
flutter build apk --debug

2. 检查hvigor配置

确保项目根目录存在hvigor文件夹及相关配置文件:

  • hvigor/hvigor-config.json5
  • hvigor/wrapper/hvigor-wrapper.jar

3. 检查Gradle配置

android/build.gradle中确认依赖版本:

dependencies {
    classpath 'com.huawei.agconnect:agcp:1.9.1.300' // 检查版本兼容性
}

4. 检查原生库文件

验证android/app/src/main/jniLibs目录结构:

jniLibs/
├── arm64-v8a/
│   ├── libflutter.so
│   └── other_native_libs.so
├── armeabi-v7a/
└── x86_64/

5. 处理缺失的arm64-v8a文件

如果缺少原生库文件,可通过以下方式解决:

方案A:添加flutter原生库

flutter build apk --target-platform android-arm64

方案B:在android/app/build.gradle中配置:

android {
    splits {
        abi {
            enable true
            reset()
            include 'arm64-v8a', 'armeabi-v7a'
            universalApk true
        }
    }
}

6. 检查华为HMS相关配置(如使用)

如果集成了华为HMS,确保:

  • agconnect-services.json文件存在且位置正确
  • HMS版本与Flutter兼容

7. 检查第三方插件

排查是否有插件存在原生库问题:

flutter pub deps --style=tree

重点关注包含原生代码的插件,尝试更新或移除可疑插件。

8. 检查磁盘空间和权限

确保:

  • 磁盘空间充足
  • 对项目目录有读写权限

执行顺序建议:

  1. 先执行清理命令(步骤1)
  2. 检查目录结构(步骤4)
  3. 尝试重新构建(步骤5A)
  4. 如仍失败,检查Gradle和插件配置

通常通过清理重建和确保原生库完整性能解决此问题。如果问题持续,请提供完整的错误日志以便进一步分析。

回到顶部