mam taki błąd podczas kompilacji:kapt nie rozwiąże protobuf wygenerowanych klas
e: /Users/some/path/SomeClass.java:86: error: cannot find symbol
e:
e: static ConnectionType getConnectionType(Context context) {
e: ^
e: symbol: class ConnectionType
e: location: class SomeClass
Gdzie ConnectionType
jest klasa generowane przez Protobuf. Wygląda więc na to, że kape nie rozdziela wygenerowanych klas.
Co próbowałem?
Początkowo dodałem kotlin-apt
wtyczki:
apply plugin: 'kotlin-kapt'
Potem dodaną brotobuf generowanych klas zestawie źródło:
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
main.java.srcDirs += 'build/generated/source/proto/main/java'
}
A także chcę mieć wygenerowanych klas przed rozpoczęciem kapt to praca . Więc zamawiam takie zadania w taki sposób:
afterEvaluate {
def protoTasks = []
tasks.each { task ->
if (task.name.contains('proto') || task.name.contains('Proto')) {
protoTasks.push(task)
}
}
tasks.each { task ->
if (task.name.startsWith('kapt')) {
task.dependsOn protoTasks
}
}
}
Ale te wszystkie rzeczy nie pomagają, nadal mam ten sam błąd. Jak to rozwiązać?
Czy jesteś pewien, że klasy są generowane? Więc możesz zobaczyć plik 'class' dla np. "ConnectionType" w folderze klasy wyjściowej? – guenhter
@guenhter Widzę tylko pliki '.java', ale nie pliki' .class'. – VasyaFromRussia
Czy widzisz plik 'SomeClass.class' swojej klasy? – guenhter