Android Studio can not resolve AutoValue class
Asked Answered
F

4

10

I started to use AutoValue today in one of my projects and what bothers me is that Android Studio can not resolve the generated class name (AutoValue_DrawableContent) and marks it with the red color:

enter image description here

How I can suppress this warning?

Flush answered 8/4, 2016 at 8:40 Comment(1)
These instructions seem to work best: github.com/google/FreeBuilder#intellijAmmonia
H
7

Add the "idea" plugin to your build.gradle, for example:

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'net.ltgt.apt'

With this plugin, Android Studio can find the generated source files.

Hosiery answered 21/12, 2016 at 23:6 Comment(0)
S
1

you can just comment out each dependencies and sync one by one... it might get things fixed...

    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.google.android.gms:play-services-maps:15.0.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
Snot answered 27/5, 2018 at 18:43 Comment(0)
F
0

Now that you have annotated your class, you need to build your project. This will generate the missing class, and Android Studio will be able to find it afterwards.

The build will not fail even though the editor is currently not recognizing the class name, because code generation will happen before the class is compiled.

Fragmental answered 8/4, 2016 at 8:44 Comment(5)
I built the project before asking a question. Projects build and runs fine, but Android Studio editor does not resolve AutoValue_Something classes and marks them as errors.Flush
hum... do you have apply plugin: 'com.neenbedankt.android-apt' in your build.gradle, and apt "com.google.auto.value:auto-value:<VERSION>" in your dependencies ?Fragmental
Yes, As a matter of fact, apt generates two classes in build/generated/source/apt folder, called AutoValue_DrawableContent.java and $AutoValue_DrawableContent.java. But for some reason that's not enough.Flush
Are you sure that you are using the android-apt plugin as opposed to the gradle apt plugin which is referenced in AutoValue docs ? The android-apt plugin is installed by adding classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4' to the buildscript dependencies in the project's build.gradle and apply plugin: 'com.neenbedankt.android-apt' to the module build.gradle. If you are using net.ltgt.apt instead, Android Studio won't pick up the generated files.Fragmental
By the way, since you seem to want to implement Parcelable as well, you can use AutoParcel instead of AutoValue : github.com/frankiesardo/auto-parcelFragmental
P
0
  1. Generate implementation class(es). AutoValue lib will do that.
  2. Add these dynamically class(es) directory into source path. android-apt plugin will do this. After doing this, ide will know AutoValue_* and not to show errors.
Piggin answered 21/5, 2016 at 11:47 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.