Android Studio cannot resolve symbol but code executes correctly
I have recently created a library Jar file that I imported in my Android project. I am able to call functions and use classes that are present in this Jar file, but Android Studio keeps telling me that it cannot "resolve symbol" of the class I am using. Please see the screenshot below:
Click here for full-size image
The code builds and executes successfully. The function isThisThingWorking()
simply returns true
, and that is just what boolean blah
gets set to.
I have tried pressing the Sync Project with Gradle Files
button and using the Invalidate Caches / Restart...
option from Android Studio's File
menu, but none of this solved the issue. What can I do to make the Android Studio IDE not display the Cannot resolve symbol 'xxxSDK'
error?
I have faced this issue when IntelliJ IDEA got closed abruptly due to OS crash.
You can do "File" -> "Invalidate Caches...", and select "Invalidate and Restart" option to fix this.
EDIT: For most folks, Senthil's answer will be more appropriate. I am leaving this one as the accepted answer because it solved my specific problem.
I found the issue - my SDK.jar
was not generated correctly. It included .java
files instead of .class
files. This explains why the IDE was not able to find the SDK class. The package structure was still correct in the Jar, which is why the package name itself is not a red color. The code worked correctly, because the compiler knew to compile the .java
files.
To solve the issue, I modified my build.gradle
of my SDK project to include .class
files, instead of .java
files, when creating the Jar. Including this new Jar instead of the old Jar fixed the IDE issue.
Try adding the library to the Project Structure
.
To do this, on the menu choose File
-> Project Structure
. Select the Libraries
option and click the green +
to add your library.
This was always happening to me after switching branches on my current project: a lot of non-sense erros being reported by the IDE.
The solution is to modify and force a build.gradle
synchronization.