当前位置:   article > 正文

Flutter 莫名其妙系列 -- 混合开发集成Flutter出现Failed to apply plugin class ‘FlutterPlugin‘_could not create task ':generatelockfiles'.

could not create task ':generatelockfiles'.

具体报错

Could not create task ‘:generateLockfiles’.

场景

  1. 组件化的安卓工程集成flutter_boost
    请添加图片描述
    2.验证过程中组件化的安卓工程集成futter依然会出现

分析过程

  1. 查看报错信息,指向flutter的构建脚本,那么考虑可能flutter版本问题
  2. 切换至最新版本,再次run,成功。
  3. 因为flutter_boost在最新flutter版本下有各式问题,考虑找到flutter官方在新版本中修复的具体内容.
  4. 在2.5.x和最新版本flutter中搜索generateLockfiles对比,发现修复的内容,并且在git提交内容中查找到.
    请添加图片描述
        rootProject.tasks.register('generateLockfiles') {
            rootProject.subprojects.each { subproject ->
                def gradlew = (OperatingSystem.current().isWindows()) ?
                    "${rootProject.projectDir}/gradlew.bat" : "${rootProject.projectDir}/gradlew"
               rootProject.exec {
                   workingDir rootProject.projectDir
                    executable gradlew
                    args ":${subproject.name}:dependencies", "--write-locks"
                    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
    if (isFlutterAppProject()) {
        rootProject.tasks.register('generateLockfiles') {
            rootProject.subprojects.each { subproject ->
                def gradlew = (OperatingSystem.current().isWindows()) ?
                    "${rootProject.projectDir}/gradlew.bat" : "${rootProject.projectDir}/gradlew"
                rootProject.exec {
                    workingDir rootProject.projectDir
                   executable gradlew
                    args ":${subproject.name}:dependencies", "--write-locks"
                }
             }
         }
     }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  1. 进入flutter module下 flutter clean 然后重新 flutter pub get (flutter 版本切换时会有缓存库的问题)
  2. 在Android 原生项目下Run,成功运行

回顾构建过程

Configure project :flutter
卡在了flutter 子工程的依赖构建(混合开发时引入),然后busy 导致守护线程不停启动直至电脑卡死(Android Studio 4.1).
从阅读源码上来看,旧版本的flutter在组件化的安卓项目中没有对module做 ‘是否为flutter module’的判断,去执行了 ./gradlew 脚本导致线程等待卡死.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/657734
推荐阅读
相关标签
  

闽ICP备14008679号