Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
647 views
in Technique[技术] by (71.8m points)

java - 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. "sdkextrasandroidm2repositorycomandroidsupportappcompat-v723.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

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...