无法创建任务...此文件和基本文件具有不同的根

kno*_*obi 15 build android-studio flutter

我已经使用 Android Studio 和 Flutter 构建了一个应用程序,并希望生成一个签名的 APK。当我在 Android Studio 中转到“工具”->“Flutter”->“打开 Android 模块”时,它开始构建项目。

但一段时间后,我收到此错误,我不知道如何更改根源或该怎么做。看来问题只是两个包(url_launcher 和共享首选项)

我的项目在我的硬盘F:上,flutter文件夹在我的硬盘C:上

错误消息“无法创建任务...”

这可能是因为我的项目位于 F: 上,而 flutter 文件夹中的包位于 C: 上?如何将 flutter 文件夹更改为 F: ?

ANA*_*MED 33

作为解决方法,您可以执行以下步骤 -

  1. 运行扑干净
  2. 在没有 flutter pub get 的情况下进行 Gradle 同步并对本机 Android 代码进行必要的更改。
  3. 执行 pub get 并运行该应用程序。

  • 这个答案救了我一百万次,我可以多次投票 (3认同)

小智 21

我通过将项目目录移动到同一驱动器来修复我的问题。我的项目存储在 E:\ 因此,我将其移动到 C:。

我的答案与rvr93的答案几乎相同,但我没有在环境变量中添加任何内容。


rvr*_*r93 10

在与项目相同的驱动器中创建一个目录并添加PUB_CACHE环境变量。跑步flutter pub get

这对我有用。


小智 5

作为解决方法,您可以执行以下步骤:

    1. 打开终端。
    1. 跑步flutter clean
    1. 不进行 Gradle 同步flutter pub get并对本机 Android 代码进行必要的更改,或者单击重试。
    1. 执行flutter pub get并运行该应用程序。
    1. 您将看到 SHA1 已生成。


Abs*_*zai 3

正如上面许多人提到的,这是由于 Pub 缓存目录和项目目录不在同一驱动器上,这是一个已知问题

除了将两个目录移动到同一驱动器之外,还有一个简单的解决方法,即为项目目录创建符号连接/链接

假设您的 Pub 缓存位于 C 盘,您的项目位于 D 盘:

  1. 使用 Windows 命令提示符在 C 盘中创建指向应用程序目录的硬符号链接:
mklink /J C:\Development\your\project\directory\link D:\your\project\directory\real\path
Run Code Online (Sandbox Code Playgroud)
  1. 从符号连接/链接在 IDE 中打开项目
C:\Development\your\project\directory\link instead of D:\your\project\directory\real\path
Run Code Online (Sandbox Code Playgroud)
  1. 有了这个,一切都应该按预期工作,但是如果您在 IntelliJ 中打开终端,它可能会为您提供真实路径而不是符号链接,因此在打开终端后
cd C:\Development\your\project\directory\link
Run Code Online (Sandbox Code Playgroud)
  1. 如果您使用来自相对路径而不是绝对路径的任何自定义或分叉本地依赖项,并且这些依赖项也在 D(或任何其他非 Pub 缓存)驱动器中,那么您还需要为这些路径创建符号链接,例如:
mklink /J C:\Development\Flutter\custom_dependencies D:\Development\Flutter\custom_dependencies
Run Code Online (Sandbox Code Playgroud)

如果您使用 PoweShell,则需要使用 New-Item 创建符号目录连接:

New-Item -ItemType Junction -Path "Link" -Target "Target"
Run Code Online (Sandbox Code Playgroud)