android10 / android10/Android-CleanArchitecture

AutoValue in domain module : Cannot resolve symbol generated AutoValue_Foo

Aperta
#246 1 commento 2 reazioni 0 assegnatari Vedi su GitHub
Lingua principale
Java
Stelle
15.5k
Fork
3.3k
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

I am trying to use AutoValue in the domain module.
Here is the AutoValue class data implementation :

```
import com.google.auto.value.AutoValue;
import org.jetbrains.annotations.Nullable;
import java.util.Date;

@AutoValue
public abstract class Trip {
public abstract int id();
public abstract String name();
public abstract int totalDistance();
@Nullable public abstract Date startDate();
@Nullable public abstract Date endDate();

public static Builder builder() {
return new AutoValue_Trip.Builder().totalDistance(0);
}

@AutoValue.Builder
public abstract static class Builder {
public abstract Builder id(int id);
public abstract Builder name(String name);
public abstract Builder totalDistance(int totalDistance);
public abstract Builder startDate(Date startDate);
public abstract Builder endDate(Date endDate);
public abstract Trip build();
}
}
```

Android Studio cannot find the generated AutoValue_Trip class, so it marks it as an error however, the project builds and runs just fine.

Here is my module's build.gradle file
```
buildscript {
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath 'me.tatarka:gradle-retrolambda:3.2.3'
classpath "net.ltgt.gradle:gradle-apt-plugin:0.12"
}
}

apply plugin: 'java'
apply plugin: 'idea'
apply plugin: "net.ltgt.apt"
apply plugin: 'me.tatarka.retrolambda'

//noinspection GroovyUnusedAssignment
sourceCompatibility = 1.8
//noinspection GroovyUnusedAssignment
targetCompatibility = 1.8

configurations {
provided
}

sourceSets {
main {
compileClasspath += configurations.provided
}
}

dependencies {
def domainDependencies = rootProject.ext.domainDependencies
def domainTestDependencies = rootProject.ext.domainTestDependencies

apt domainDependencies.autoValue
compileOnly domainDependencies.autoValue

provided domainDependencies.javaxAnnotation

compile domainDependencies.javaxInject
compile domainDependencies.rxJava
compile domainDependencies.arrow

testCompile domainTestDependencies.junit
testCompile domainTestDependencies.mockito
testCompile domainTestDependencies.assertj
}
```

I have tried using a sourceSet as follows to add the generated build files and folders to the source path:

```
main {
java {
srcDirs += 'src/../build/generated'
}
}
```

But then I was getting compileJava errors.

Has anyone ran into this issue and how did you correct it? Additional info will be provided if necessary.

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Inizia dal build.gradle del modulo domain e riproduci la discrepanza tra l'avviso di Android Studio secondo cui AutoValue_Trip non è risolvibile e il build completato correttamente. Esamina come i sorgenti generati da apt vengono esposti all'IDE, incluso il sourceSet generato tentato, e verifica che compileJava continui ad avere successo senza introdurre errori nei percorsi dei sorgenti. Il lavoro è completato quando Android Studio riconosce la classe generata senza compromettere la compilazione.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
android, java
Ambito
build-system, developer-experience
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
25/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.