Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Studio - 'Cannot resolve symbol' syntax highlighting errors although build is ok

I have a really annoying problem since several days, after I tried to restore a previously working Android Studio project from a backup, after getting a new computer.

I have the "cannot resolve symbol" syntax highlighting problem with the classes from Android libraries such as android.support.v7.app, android.support.v4.app, and Google Play Services, which I have included as dependencies. But, the project builds fine and I can run the App on phone with no problems.

I have verified whether these jar files exist under SDK installation - for e.g. "\sdk\extras\android\m2repository\com\android\support\appcompat-v7\23.0.1".

My problem is quite similar to the ones reported in below posts:

  1. Android Studio says "cannot resolve symbol" but project compiles
  2. Android Studio cannot resolve symbol but code executes correctly
  3. Android Studio suddenly cannot resolve symbols

I have tried all the solutions provided in various stackoverflow discussions (i.e. Sync Gradle Project, Invalidate Cache/Restart, Clean/Rebuild, Deleting gradle generated files (.gradle, build, .idea directories etc.), downgrade to lower API and upgrade etc. But, no method is helpful.

I use Android Studio 1.3.2 and API 23. All build tools, support library etc. are up to date (tried with both v22.+ and v23.+ of the libraries).

Please do help if you have any other suggestions!

Extract from my build.gradle:

apply plugin: 'com.android.application'
android {
        compileSdkVersion 22
        buildToolsVersion '23.0.1'

defaultConfig {
    applicationId "com.myapp.fun"
    minSdkVersion 22
    targetSdkVersion 23
    versionCode 1
    versionName "1.0"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
}
dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:support-v4:22.+'
    compile 'com.android.support:appcompat-v7:22.+'
}

Screenshots of the problems can also be found below. I think Android Studio is not able to import the dependent libraries for syntax highlighting, although the compiler is able to include them and build successfully.

Screenshot: Syntax highlight and auto-complete issue

like image 819
Jim C Avatar asked Sep 09 '15 10:09

Jim C


2 Answers

The reason is because I had a '!' symbol in my project path. Apparently, as I learnt now, many Java programs fail due to this reason! :-)

I just renamed the path and it works fine now :-)


P.S.

Thank you @gabriele-mariotti for the gradlew clean suggestion. In fact, that helped me find the real root cause. I was not able to run gradlew from the terminal due to a RuntimeException:

Could not determine wrapper version. at org.gradle.wrapper.GradleWrapperMain.wrapperVersion

But that helped me learn about the effect of '!' symbol on paths, and to the root cause of the problem. Thank you all!

like image 197
Jim C Avatar answered Oct 19 '22 10:10

Jim C


You can trying:

  • Open Module Settings, change the value of compile SDK version (you can choose the minimum version number)
  • Wait for Android Studio to finish refreshing
  • Make sure you have imported:
    import android.support.v4.app.FragmentActivity

  • Open Module Settings again and you should change back compile SDK version , the original version number before you changed it.

  • Wait for Android Studio to finish refreshing
like image 42
Gladys Sanchez Avatar answered Oct 19 '22 09:10

Gladys Sanchez