26

I've built an app with Android Studio and Flutter and wanted to generate a signed APK. When I go to Tools->Flutter->Open Android module in Android Studio, it starts to build the project.

But after some time I get this Error and I don't know how to change the roots or what to do. It seems like the problem are just two packages (url_launcher and shared preferences)

My Project is on my hard disk F: and the flutter folder is on my hard disk C:

Error Message "Could not create task..."

Is this maybe because my project is on F: and the flutter folder with the packages in C: ? How can I change the flutter folder to F: ?

0

12 Answers 12

88

As a workaround, you can do the following steps -

  1. run flutter clean
  2. do the Gradle sync without flutter pub get and make necessary changes to native android code.
  3. do pub get and run the app.
Sign up to request clarification or add additional context in comments.

3 Comments

this answer saved me a million times, which I could do multiple upvotes
whats the command for 2.? Gradle sync not exists
Sorry for the delayed response. @ Adrian Preuss. If using android studio you can use gradle sync feature by clicking the sync button at the top right corner inside the opened gradle file. or by command line as ./gradlew dependencies or ./gradlew --refresh-dependencies.
24

I fixed mine by moving the project directory to the same drive. My project was stored in E:\ so, I moved it to C:.

My answer is almost the same as rvr93's answer but I did not add anything to the environment variables.

1 Comment

I created an issue which you can upvote: github.com/flutter/flutter/issues/105395
17

Create a directory in the same drive as your project and add PUB_CACHE environment variable. Run flutter pub get.

This worked for me.

3 Comments

I created an issue which you can upvote: github.com/flutter/flutter/issues/105395
This is the only solution working for me, because my flutter project is a dependency in a native project.
This worked for me for my Flutter module added to native android app as add2app.
8

As mentioned by many above it is due to Pub cache directory and project directory not being on the same drive, which is a known issue

Apart from moving both directories to the same drive there is a simple workaround of creating a symbolic junction/link for your project directory

Assuming you have Pub cache in C drive and your project in D drive:

  1. Create a hard symbolic link in C drive to your app directory using windows command prompt:
mklink /J C:\Development\your\project\directory\link D:\your\project\directory\real\path
  1. Open the project in your IDEs from symbolic junction/link
C:\Development\your\project\directory\link instead of D:\your\project\directory\real\path
  1. With this everything should work as expected, however if you open terminal in IntelliJ it might give you the real path instead of symbolic link, hence after opening terminal do
cd C:\Development\your\project\directory\link
  1. If you are using any custom or forked local dependencies from a relative path not absolute path and these are also in D(or any other non Pub cache) drive then you will need to create symbolic links for these paths as well e.g.:
mklink /J C:\Development\Flutter\custom_dependencies D:\Development\Flutter\custom_dependencies

If you use PoweShell then you need to use New-Item to create symbolic directory junction:

New-Item -ItemType Junction -Path "Link" -Target "Target"

Comments

7

As a workaround, you can do the following steps :

    1. Open a terminal.
    1. Run flutter clean.
    1. Do the Gradle sync without flutter pub get and make necessary changes to native Android code or click on try again.
    1. Do flutter pub get and run the app.
    1. You will see that the SHA1 has been generated.

Comments

3

I had your same issue, Gradle couldn't sync the android module, I solved it by deleting the android/ directory from the Flutter project, then recreate it using the command flutter create --platforms android .

Notice the "." at the end of the command it's part of it, it means create the Android project in the current directory.

2 Comments

Thanks that's good to know :) I just had a work around and copied the whole project to the C: hard disk. Then it worked :)
I created an issue which you can upvote: github.com/flutter/flutter/issues/105395
3

I have the same issue, it seems the flutter project and the SDKs are in different prtitions of the hard disk

just go to the project root and run flutter clean then go to the android folder and delete the .gradle folder then back to the project root and run flutter pub get

and rebuild the app

Comments

3

For those whose Gradle Sync failed, follow these steps:

  1. Do flutter clean in your project terminal.
  2. Open android folder of your project using Android Studio - Android Studio->File->Open->Your_Project->Android.
  3. Now do Gradle Sync.
  4. Close your android project.
  5. Do flutter pub get in your flutter project terminal now.

Comments

2

Steps:

  • Create a new folder on the desired drive (e.g., D:\PubCache).
  • Open System Properties (Win + R > sysdm.cpl > Advanced tab > Environment Variables).
  • Under User Variables, click New and add:
    • Variable Name: PUB_CACHE
    • Variable Value: D:\PubCache (or another location on the same drive as your project).
  • Move the contents of the existing cache folder (C:\Users\ADMIN\AppData\Local\Pub\Cache) to the new location (D:\PubCache) if you want to keep the existing cached packages.
  • Restart your terminal or IDE to apply the changes.
  • Run the following commands:
    • flutter clean
    • flutter pub get

Comments

1

I faced the same issue in my android project after upgrading gradle.

My project was in my D drive, and I had set the destination folder for the generated apk in my desktop, which is in C drive. I changed the destination folder to a folder in D drive, and the issue got resolved.

1 Comment

and where to change destination folder?
1

I was facing the same issue all I did was to go build.gradle file in android folder and then change the following code as follows

    dependencies {
//CHANGE THE Version in  YOUR BUILD.GRADLE FILE
        classpath 'com.android.tools.build:gradle:4.1.0'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }

This is a temporary solution - track status here

Comments

1

If the project is not on the C drive, create a folder named Pub under the same drive letter as the project for plug-in caching, and then configure the folder path to the system environment variable PUB_CACHE, otherwise an error will be reported when compiling the Android native project.

1 Comment

As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.