Dan J Dan J - 1 year ago 184
Android Question

Android Studio inline compiler showing red errors, but compilation with gradle works fine

I've set up my project in Android Studio to use the Square Wire library, as per this question.

Compile Project
works fine.

2:03:10 PM Compilation completed successfully in 31 sec

However, if I open one of my generated Protocol Buffer files, then the Square package is not being recognized.

Android Studio inline compile errors

Another symptom is that methods inherited from the Square
class are showing as "Cannot resolve method" compile errors in the editor, even though they build and run fine.

Android Studio single line compile error

Do I need to do something more than just adding the dependency in
for my module in my project?

Answer Source

Thanks to free3dom for getting me on the right track here.


The Sync Project with Gradle Files option in Android Studio seems to keep the Project Structure libraries up to date.

gradle sync

However, in my case there were some errors:

errors found

Expanding the (not very obvious) link showed the detail. My wire-runtime library was showing in an incorrect location:


This seemed to be a hangover from my original configuration where I had imported the JAR into a libs folder.

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')

I subsequently changed it to be imported directly from Maven Central (as per here), and it seems that the old setting was never overwritten with the new one.

The Fix

The fix is to delete the library dependency from the Project Structure screen and then Sync Project with Gradle Files again.

More Detail

You can also see what path is being used to the resource by opening the .idea/libraries/wire_runtime_1_2_0.xml directly.

My broken one was:

  <component name="libraryTable">
  <library name="wire-runtime-1.2.0">
      <root url="jar://$PROJECT_DIR$/MY_MODULE/libs/wire-runtime-1.2.0.jar!/" />
    <JAVADOC />
    <SOURCES />

After deleting and re-adding the library it changed the root url to:

      <root url="jar://$USER_HOME$/.gradle/caches/artifacts-26/filestore/com.squareup.wire/wire-runtime/1.2.0/jar/44e7acbd5eb6f29698181dc3d67a60acf7efee80/wire-runtime-1.2.0.jar!/" />


Android Studio v0.4.4 apparently fixes other bugs which have the same symptoms, so if you have an older version you may wish to upgrade.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download