Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

First Flutter App error: cannot resolve symbol "Properties"

I followed the steps in the Flutter document and tried to build my first Flutter app in Intellij IDEA. And when I try to run it,there was an error about my JAVA_HOME variable. And an error about cannot resolve symbol "Properties" in the build.gradle file. I really don't know what to do.

This is my error information displayed in the Console window.

Launching lib\main.dart on Android SDK built for x86 in debug mode...
Initializing gradle...
Finished with error: ProcessException: Process 
"F:\untitled\android\gradlew.bat" exited abnormally:

ERROR: JAVA_HOME is set to an invalid directory: F:\Google download\jdk- 
10.0.1_windows-x64_bin.exe

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.
  Command: F:\untitled\android\gradlew.bat -v

Actually there is nothing wrong with my JAVA_HOME variable, I set it to the proper directory: C:\Program Files (x86)\Java\jdk1.8.0_131.

And I run the command it shows above "F:\untitled\android\gradlew.bat -v", it seemed to update the gradle version, but the error didn't resolved.

And this is the code in build.gradle file.

def localProperties = new Properties() 
//there will be a highlight on Properties indicates that 'cannot resolve symbol "Properties" '

def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) {
    localPropertiesFile.withReader('UTF-8') { reader ->
        localProperties.load(reader)
    }
}

def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
//the same as the Properties on GradleException
}

def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
    flutterVersionCode = '1'
}

def flutterVersionName = localProperties.getProperty('flutter.versionName')
if (flutterVersionName == null) {
    flutterVersionName = '1.0'
}

apply plugin: 'com.android.application'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

android {
    compileSdkVersion 28

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
        applicationId "com.example.untitled"
        minSdkVersion 16
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            // TODO: Add your own signing config for the release build.
            // Signing with the debug keys for now, so `flutter run --release` works.
            signingConfig signingConfigs.debug
        }
    }
}

flutter {
    source '../..'
}

dependencies {
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
like image 309
Wellen Avatar asked Jul 08 '19 15:07

Wellen


3 Answers

This issue is due to not pointing to correct Android API Platform

Solution :

In the Android Studio File > Project Structure

  1. Now a window pops up
  2. Within that select Project Settings/Project
  3. Make sure Project SDK is set to latest platform as mentioned in the pic below

enter image description here

  1. Next select Project Settings/Modules sub tab
  2. There select the lastest Android SDK as you did in step-3

enter image description here

  1. Finally replace the GradleException() with FileNotFoundException() as mentioned below

enter image description here

like image 110
Shriram Navaratnalingam Avatar answered Oct 14 '22 07:10

Shriram Navaratnalingam


I tried all other suggestions, and they did not help. Then I have removed "new" in front of GradleException, and it solved the problem:

throw GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")

It worked perfectly fine with the "new" word for a long time. I don't know what have caused this change.

like image 95
Andrei Volgin Avatar answered Oct 14 '22 09:10

Andrei Volgin


I've just had this issue and in my case was due to an invalid SDK configuration. I've solved by going to:

Project structure > Project Settings > Modules > Module SDK

and switching from <no project SDk>

to Android api 29 platform

like image 25
daveoncode Avatar answered Oct 14 '22 09:10

daveoncode