我正在使用 Android Studio Koala Feature Drop | 2024.1.2 补丁 1。 我正在尝试启动并运行一个简单的 Protobuffer 应用程序,虽然有大量关于如何实现此功能的示例代码,但我(尚未)未能实现这一目标。
当我尝试同步项目时,出现以下错误。
Unresolved reference: option
生成 protobuf 代码的(相关)cradle 片段如下
import com.google.protobuf.gradle.*
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
id("com.google.protobuf") version "0.9.3"
}
sourceSets{
getByName("main") {
kotlin {
srcDirs("src/main/kotlin")
}
proto {
srcDir("src/main/proto")
}
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(libs.androidx.lifecycle.runtime.ktx)
implementation(libs.androidx.activity.compose)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.ui)
implementation(libs.androidx.ui.graphics)
implementation(libs.androidx.ui.tooling.preview)
implementation(libs.androidx.material3)
implementation (libs.protobuf.kotlin.lite)
protobuf{
protoc {
artifact = "com.google.protobuf:protoc:3.22.2"
}
generateProtoTasks {
all().forEach { task ->
task.builtins {
kotlin{
option("lite")
}
}
}
}
}
线路发生错误
option("lite")
尽管 IDE 在我启动“kotlin{}”行时“建议”该行...
感谢 这种方法 我现在可以从 .proto 文件生成 kotlin 代码
以下是我遵循的步骤
在项目build.gradle中将以下内容添加到plugins{}块中
id(“com.google.protobuf”)版本“0.9.4”适用 false
plugins{} 块应该与此类似
plugins {
alias(libs.plugins.android.application) apply false
alias(libs.plugins.kotlin.android) apply false
id("com.google.protobuf") version "0.9.4" apply false}
2.a) 在文件开头添加以下内容
import com.google.protobuf.gradle.*
2.b) 将以下内容添加到plugins{}块中
id("com.google.protobuf")
该块应该看起来像这样
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
id("com.google.protobuf")}
2.c) 将以下内容添加到依赖项{}块中
implementation ("com.google.protobuf:protobuf-kotlin-lite:3.20.1")
2.d) 在文件底部添加以下内容
protobuf {
protoc {
artifact = "com.google.protobuf:protoc:3.21.2"
}
plugins {
id("java") {
artifact = "io.grpc:protoc-gen-grpc-java:1.47.0"
}
}
generateProtoTasks {
all().forEach {
it.plugins {
id("java") {
option("lite")
}
}
it.builtins {
id("kotlin") {
option("lite")
}
}
}
}
2.e) 同步您的项目
2.f) 在 ..../yourapp/app/src/main 下创建 proto 文件夹
2.g) 在 ..../yourapp/app/src/main/proto 中创建 .proto 文件
2.h) 运行 make
2.i) (生成的)java 文件夹现在应该包含 protobuffer 的 kotlin 代码。