import com.google.protobuf.gradle.* plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.protobuf) } android { namespace = "com.cortex.agentnode" compileSdk = 34 defaultConfig { applicationId = "com.cortex.agentnode" minSdk = 26 targetSdk = 34 versionCode = 1 versionName = "1.0.0" } buildTypes { release { isMinifyEnabled = true proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro") } } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = "17" } // Suppress lint errors for proto-generated code lint { disable += "InvalidPackage" } } protobuf { protoc { artifact = "com.google.protobuf:protoc:${libs.versions.protobuf.get()}" } plugins { create("grpc") { artifact = "io.grpc:protoc-gen-grpc-java:${libs.versions.grpc.get()}" } create("grpckt") { artifact = "io.grpc:protoc-gen-grpc-kotlin:${libs.versions.grpcKotlin.get()}:jdk8@jar" } } generateProtoTasks { all().forEach { task -> task.plugins { create("grpc") { option("lite") } create("grpckt") { option("lite") } } task.builtins { create("java") { option("lite") } create("kotlin") { option("lite") } } } } } dependencies { implementation(libs.androidx.core.ktx) implementation(libs.androidx.appcompat) implementation(libs.material) implementation(libs.androidx.lifecycle.service) // gRPC + Protobuf implementation(libs.grpc.okhttp) implementation(libs.grpc.android) implementation(libs.grpc.protobuf.lite) implementation(libs.grpc.stub) implementation(libs.grpc.kotlin.stub) implementation(libs.protobuf.kotlin.lite) // Coroutines implementation(libs.kotlinx.coroutines.android) // CameraX implementation(libs.camerax.core) implementation(libs.camerax.camera2) implementation(libs.camerax.lifecycle) }