gpt4 book ai didi

android - kapt 不解析 protobuf 生成的类

转载 作者:IT老高 更新时间:2023-10-28 13:46:02 26 4
gpt4 key购买 nike

我在构建过程中遇到这样的错误:

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

其中 ConnectionType 是 protobuf 生成的类。所以看起来 kapt 不能解析生成的类。

我尝试了什么?

一开始我添加了 kotlin-apt 插件:

apply plugin: 'kotlin-kapt'

然后我将 brotobuf 生成的类添加到源集:

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

而且我还想在 kapt 开始工作之前生成类。所以我以这种方式订购 gradle 任务:

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
}
}
}

但是所有这些都没有帮助,我仍然遇到同样的错误。如何解决?

最佳答案

该错误是由错误的 protobuf 源集路径引起的。我必须在其中使用正确的 flavor 名称,例如:

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

而不是

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

关于android - kapt 不解析 protobuf 生成的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45216112/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com