tôi nhận được báo lỗi như vậy trong thời gian xây dựng:kapt không giải quyết được các lớp học protobuf tạo
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
đâu ConnectionType
là lớp được tạo ra bởi protobuf. Vì vậy, có vẻ như kapt không giải quyết các lớp được tạo ra.
Tôi đã thử gì?
Lúc đầu, tôi nói thêm kotlin-apt
plugin:
apply plugin: 'kotlin-kapt'
Sau đó, tôi đã thêm lớp brotobuf tạo để thiết lập nguồn:
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
main.java.srcDirs += 'build/generated/source/proto/main/java'
}
Và tôi cũng muốn có các lớp học được tạo ra trước khi kapt bắt nó làm việc . Vì vậy, tôi đặt hàng các công việc theo cách này theo cách này:
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
}
}
}
Nhưng tất cả những điều này không giúp ích gì, tôi vẫn gặp lỗi tương tự. Làm thế nào để giải quyết nó?
Bạn có chắc chắn rằng các lớp được tạo ra? Vì vậy, bạn có thể thấy tệp 'class' cho ví dụ: 'ConnectionType' trong thư mục lớp-đầu ra của bạn? – guenhter
@guenhter Tôi chỉ có thể xem các tệp '.java' chứ không phải tệp' .class'. – VasyaFromRussia
Bạn có thể xem tệp 'SomeClass.class' của lớp học không? – guenhter