2017-07-20 1 views
6

ich solche Fehler während des Build erhalten:Kapt löst nicht protobuf-generierten Klassen

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 

Wo ConnectionType ist Klasse von protobuf erzeugt. Es sieht also so aus, als würde kapt die generierten Klassen nicht auflösen.

Was habe ich ausprobiert?

Zuerst habe ich kotlin-apt Plugin:

apply plugin: 'kotlin-kapt' 

Dann habe ich brotobuf-generierten Klassen zu Quellsatz:

sourceSets { 
    main.java.srcDirs += 'src/main/kotlin' 
    main.java.srcDirs += 'build/generated/source/proto/main/java' 
} 

Und ich möchte auch generierten Klassen haben, bevor Kapt beginnt es Arbeit ist . So bestelle ich grelle Aufgaben auf diese Weise:

Aber alle diese Sachen helfen nicht, ich habe immer noch den gleichen Fehler. Wie man es löst?

+0

Sind Sie sicher, dass die Klassen erzeugt werden? Also können Sie die 'class' Datei für z.B. 'ConnectionType' in Ihrem Klassenausgabeordner? – guenhter

+0

@guenhter Ich kann nur '.java' Dateien sehen, aber nicht' .class' Dateien. – VasyaFromRussia

+0

Können Sie die 'SomeClass.class' Datei Ihrer Klasse sehen? – guenhter

Antwort

1

Der Fehler wurde durch einen falschen Pfad zum protobuf-Quellensatz verursacht. Ich hatte richtig Geschmack Namen in es zu benutzen, wie:

sourceSets { 
    // ... 
    main.java.srcDirs += 'build/generated/source/proto/flavor/java' 
} 

statt

sourceSets { 
    // ... 
    main.java.srcDirs += 'build/generated/source/proto/main/java' 
} 
Verwandte Themen