Unable to run Flutter project on Android after update

3.3k views Asked by At

I've been trying to get my Flutter project to run after upgrading it to 2.10.4 and it's been a headache from the start. The project runs fine on a browser, but I'm having difficulty running on an Android emulator. I think I'm at the last hurdle, but I'm stumped right now. I'm receiving this error when running on VS Code:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine the dependencies of task ':app:compileDebugJavaWithJavac'.
> Failed to install the following SDK components:
      build-tools;30.0.2 Android SDK Build-Tools 30.0.2
  The SDK directory is not writable (C:\Program Files (x86)\Android\android-sdk)

Here's my Flutter Doctor:

PS D:\Documents\Flutter_Projects\glance> flutter doctor -v
[√] Flutter (Channel stable, 2.10.4, on Microsoft Windows [Version 10.0.19043.1586], locale en-US)
• Flutter version 2.10.4 at D:\Programs\flutter_windows_v1.2.1-stable\flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision c860cba910 (3 weeks ago), 2022-03-25 00:23:12 -0500
• Engine revision 57d3bac3dd
• Dart version 2.16.2       
• DevTools version 2.9.2
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Program Files (x86)\Android\android-sdk
• Platform android-31, build-tools 30.0.3
• ANDROID_HOME = C:\Users\reff1\AppData\Local\Android\Sdk
• ANDROID_SDK_ROOT = C:\Users\reff1\AppData\Local\Android\Sdk
• Java binary at: D:\AndroidStudio\jre\bin\java
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
X Android license status unknown.
  Run `flutter doctor --android-licenses` to accept the SDK licenses.
  See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
• Chrome at C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
[X] Visual Studio - develop for Windows
X Visual Studio not installed; this is necessary for Windows development.
  Download at https://visualstudio.microsoft.com/downloads/.
  Please install the "Desktop development with C++" workload, including all of its default components
[√] Android Studio (version 2021.1)
• Android Studio at D:\AndroidStudio
• Flutter plugin can be installed from:
   https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
   https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+9-b60-7590822)
[!] Android Studio (version 4.1)
• Android Studio at D:\Programs\AndroidStudio
• Flutter plugin can be installed from:
   https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
   https://plugins.jetbrains.com/plugin/6351-dart
X Unable to determine bundled Java version.
• Try updating or re-installing Android Studio.
[√] VS Code, 64-bit edition (version 1.50.1)
• VS Code at C:\Program Files\Microsoft VS Code
• Flutter extension version 3.17.0
[√] Connected device (4 available)
• sdk gphone64 x86 64 (mobile) • emulator-5554 • android-x64    • Android 12 (API 32) (emulator)
• Windows (desktop)            • windows       • windows-x64    • Microsoft Windows [Version 10.0.19043.1586]
• Chrome (web)                 • chrome        • web-javascript • Google Chrome 100.0.4896.88
• Edge (web)                   • edge          • web-javascript • Microsoft Edge 99.0.1150.46
[√] HTTP Host Availability
• All required HTTP hosts are available

Here's the part that keeps getting me. I'm seeing I need to run flutter doctor --android-licenses and this is what I get:

PS D:\Documents\Flutter_Projects\glance> flutter doctor --android-licenses

Error: Could not find or load main class Files

I have no clue where to go from here. Any help would be greatly appreciated here. Thank you in advance.

5

There are 5 answers

3
ken On BEST ANSWER

It appears that you have two sets of Android Studio and Android SDK.

[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at C:\Program Files (x86)\Android\android-sdk     <--- 1
...
• ANDROID_HOME = C:\Users\reff1\AppData\Local\Android\Sdk      <--- 2
[√] Android Studio (version 2021.1)    <--- 1
• Android Studio at D:\AndroidStudio
...
[!] Android Studio (version 4.1)      <--- 2
• Android Studio at D:\Programs\AndroidStudio

Android Studio version 4.1 is a bit older so I guess you installed it in the past and forgot about it.

Also, it is not normal (or up-to-date) to have Android SDK placed under Program Files. This is the direct cause of the error. In Windows, writing files under Program Files requires administrator privileges. Your system is possibly confused because you have a mixed environment with an SDK that requires administrator privileges and one that does not.

My advice is to first uninstall all of them. Before you begin, find out where the Android Studio configuration files are stored and backup them. It is documented in here.

Now, completely uninstall all versions of Android Studio and Android SDK, manually delete all environment variables related to Android if any, manually delete (and backup) all configuration files if the uninstaller did not, then make sure all four directories above are empty.

Next, install the latest version of Android Studio and install the Android SDK via Android Studio. At this point, make sure that the installation directory is not under Program Files or Program Files (x86). If it is, then something in the older version is still there and is doing bad things so you have to restart from the first step.

Finally, run flutter clean (just to be sure), then flutter doctor to make sure only one of each is detected.

2
sasikumar On

In android studio update your sdk 30

enter image description here

2
Anandh Krishnan On

Change the ownership of Android SDK:

sudo chown -R $(whoami) $ANDROID_HOME
0
Prashant On

For this issue : Android license status unknown. Type in command prompt flutter doctor --android-licenses

Type Yes/y/Y to accept licenses

0
Basel Abuhadrous On

Maybe it's an emulator specific issue, did you try to run it on a real device?

Regarding the android license issue you are getting, I guess that the system is not recognizing JAVA or it needs to be updated so please check that.

Also make sure that the emulator itself is updated and not only the android SDK, go to SDK manager and check all the dashed components: enter image description here

If this didn't work, delete the emulator and create a new one, and if that didn't help, delete all instances of android studio as I see 2 on your system that might conflict the SDK path.