From time to time when working with other people’s projects I run into build errors that are caused by the @override annotation. It took me a while to understand why that was happening as I was usually able to solve it by simply deleting the @override annotation or adding it where needed.
Turns out the problem is because of of a mismatch in the JDK different developers are using.
Starting in Java 6 the @override annotation no longer applies to interface methods. So most methods derived from an interface no longer need them. They are however needed with Java 5. The problem arises if a dev with Java 5 creates an android project, By default the project will get set with whatever JDK compliance is valid in their environment, in this Java 1.5. If a developer with java 6 opens the same project all @override annotations will be flagged as errors when appearing above interface methods.
Thankfully, this is easy to fix.
You simply need to go to your android project properties, choose the java compiler and select the appropriate JDK compliance level for your environment.
Click enable project specific settings to be able to select the appropriate JDK version to use.
Don’t know which hava version you have? No problem. Simply type java -version in your command line to get that info. It will look like below
Don’t want to have to do this every time you and another developer have mismatching JDKs? You can configure it as a default on your workspace.
From the same Java Compiler properties window, click “Configure Workspace Settings”
That will bring you to the window below where you can choose your default Compiler compliance level for your JDK Compliance.
As per usual i’d like to thank the fine folks @ stackoverflow for their help.