grpc-kotlin:未解决的参考

问题描述 投票:0回答:2

我尝试将原始定义编译到 kotlin 存根中,但遇到了导入问题。我的等级是


protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.21.2"
    }

    plugins {
        grpckt {
            artifact = "io.grpc:protoc-gen-grpc-kotlin:1.3.0:jdk8@jar"
        }
    }

    generateProtoTasks {
        all().forEach { task ->
            task.builtins {
                grpckt {
                    option 'lite'
                }
            }
            task.plugins {
                kotlin {
                    option 'lite'
                }
            }
        }
    }
}

dependencies {

    //grpc dependency
    implementation("io.grpc:grpc-kotlin-stub:1.3.0")
    implementation 'io.grpc:grpc-okhttp:1.47.0'
    implementation("io.grpc:grpc-protobuf:1.47.0")
    implementation("com.google.protobuf:protobuf-kotlin:3.21.12")
    implementation 'io.grpc:grpc-protobuf-lite:1.47.0'

}

我的原始文件很少。编译原型后,我得到带有导入错误的文件:

选项 java_multiple_files = true - 没有帮助。

android kotlin protocol-buffers grpc grpc-kotlin
2个回答
0
投票

您正在 lite 模式下配置原型生成,但不使用 kotlin-lite 库。这可能会导致您的问题。

尝试更换

implementation("com.google.protobuf:protobuf-kotlin:3.21.12")

implementation("com.google.protobuf:protobuf-kotlin-lite:3.21.12")

0
投票

可能为时已晚,但对于所有通过 Google 找到方法的人来说,您还需要生成 Java 源文件才能完成这项工作。

protobuf {
    protoc { artifact = "com.google.protobuf:protoc:${protobufVersion}" }
    plugins {
        id("grpc") {
            artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
        }
        id("grpckt") {
            artifact = "io.grpc:protoc-gen-grpc-kotlin:${grpcKotlinVersion}:jdk8@jar"
        }
        id("java"){
            artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}"
        }
    }
    generateProtoTasks {
        all().forEach { task ->
            task.plugins {
                id("grpc") {
                    option("lite")
                }
                id("grpckt") {
                    option("lite")
                }
                id("java") {
                    option("lite")
                }
            }
            task.builtins {
                id("kotlin")
            }
        }
    }
}

dependencies {
    implementation("io.grpc:grpc-okhttp:${grpcVersion}")
    implementation("io.grpc:grpc-protobuf-lite:${grpcVersion}")
    implementation("io.grpc:grpc-stub:${grpcVersion}")
    implementation("io.grpc:grpc-kotlin-stub:${grpcKotlinVersion}")
    implementation("com.google.protobuf:protobuf-javalite:${protobufVersion}")
    implementation("com.google.protobuf:protobuf-kotlin-lite:${protobufVersion}")
}
© www.soinside.com 2019 - 2024. All rights reserved.