android - Jetpack 原型(prototype)数据存储 - 使用 Kotlin dsl 进行 gradle 配置

标签 android gradle-kotlin-dsl android-jetpack-datastore

在 jetpack 数据存储中,您必须 set the gradle plugin task用于从 .proto 中生成类文件:

// build.gradle
protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.10.0"
    }

    // Generates the java Protobuf-lite code for the Protobufs in this project. See
    // https://github.com/google/protobuf-gradle-plugin#customizing-protobuf-compilation
    // for more information.
    generateProtoTasks {
        all().each { task ->
            task.builtins {
                java {
                    option 'lite'
                }
            }
        }
    }
}
在我的项目中,我使用 Kotlin dsl 对于我的 gradle 项目。尝试将其转换为 kotlin dsl 后,option属性未知,我找不到它可以替代 kotlin kts
// build.gradle.kts
protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:3.10.0"
    }
    generateProtoTasks {
        all().forEach { task ->
            task.builtins {
                java {
                    option = "lite" // ** option is unknown **
                }
            }
        }
    }
}

最佳答案

使用 Jetpack 原型(prototype)数据存储 使用以下代码 Gradle Kotlin DSL

// top of file
import com.google.protobuf.gradle.*

plugins {
    id("com.google.protobuf") version "0.8.12"
    // ...
}

val protobufVersion = "3.18.0"

dependencies {
  // ...
  implementation("com.google.protobuf:protobuf-javalite:$protobufVersion")
  implementation("androidx.datastore:datastore:1.0.0-alpha03")
}

protobuf {
    protoc {
        artifact = "com.google.protobuf:protoc:$protobufVersion"
    }
    generateProtoTasks {
        all().forEach { task ->
            task.plugins{
                create("java") {
                    option("lite")
                }
            }
        }
    }
}

关于android - Jetpack 原型(prototype)数据存储 - 使用 Kotlin dsl 进行 gradle 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64811006/

相关文章:

java - 如何在基于 Java 的 Android 应用程序中实现 Datastore?

java - 当我的 Android 应用程序在 Android 设备/模拟器上运行时,Jsoup 无法工作

Android Opengraph Like 按钮实现

ant - 使用 gradle-script-kotlin 中的 ant 任务

kotlin - 了解在 Gradle 中应用插件的所有方法

java - 从 SharedPreferences 迁移到 Jetpack DataStore "Java"

android - 无法在 jetpack 数据存储类中写入首选项未找到异常

android - ActionBarActivity 在按下硬件菜单按钮后关闭。没有堆栈跟踪

android - 如何动态处理 Retrofit JSON

R8 的 Android 构建失败