Flutter this and base files have different roots 问题

Flutter项目是能运行的,打开Flutter里面的Android项目才会报下面错误。

Android使用的是kotlin。

Flutter一开始Android build是没问题的,开发着突然就报这个下面的错误,开始怀疑是不是有什么缓存啥的,然后各种排除都没找到什么原因,后面想着降版本吧,kotlin降了没用,后面尝试最后一个Gradle降版本竟然成功了。

8:34    Gradle sync started
8:35    Gradle sync failed: Could not create task ':image_picker:generateDebugUnitTestConfig'.
            this and base files have different roots: D:\Pensoon\flutter_property_check_gd\build\image_picker and C:\Users\XXX\AppData\Roaming\Pub\Cache\hosted\pub.flutter-io.cn\image_picker-0.8.3+2\android. (52 s 230 ms)
8:35    Gradle sync started
8:35    Gradle sync failed: Could not create task ':image_picker:generateDebugUnitTestConfig'.
            this and base files have different roots: D:\Pensoon\flutter_property_check_gd\build\image_picker and C:\Users\XXX\AppData\Roaming\Pub\Cache\hosted\pub.flutter-io.cn\image_picker-0.8.3+2\android. (2 s 588 ms)

解决

降低Gradle版本

build.gradle文件

// 报错版本
classpath 'com.android.tools.build:gradle:7.0.0'
// 解决版本
classpath 'com.android.tools.build:gradle:4.1.3'

gradle-wrapper.properties文件

// 报错版本
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-all.zip
// 解决版本
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.1-bin.zip

原因应该是Gradle高版本跟Flutter一些配置冲突了。

推荐阅读更多精彩内容