





















@@ -33,10 +33,10 @@ if (wantsAndroidReleaseBuild && !hasAndroidReleaseSigning) {
3333}
34343535plugins {
36-id("com.android.application")
37-id("org.jlleitschuh.gradle.ktlint")
38-id("org.jetbrains.kotlin.plugin.compose")
39-id("org.jetbrains.kotlin.plugin.serialization")
36+alias(libs.plugins.android.application)
37+alias(libs.plugins.ktlint)
38+alias(libs.plugins.kotlin.compose)
39+alias(libs.plugins.kotlin.serialization)
4040}
41414242android {
@@ -78,13 +78,9 @@ android {
7878 productFlavors {
7979 create("play") {
8080 dimension = "store"
81- buildConfigField("boolean", "OPENCLAW_ENABLE_SMS", "false")
82- buildConfigField("boolean", "OPENCLAW_ENABLE_CALL_LOG", "false")
8381 }
8482 create("thirdParty") {
8583 dimension = "store"
86- buildConfigField("boolean", "OPENCLAW_ENABLE_SMS", "true")
87- buildConfigField("boolean", "OPENCLAW_ENABLE_CALL_LOG", "true")
8884 }
8985 }
9086@@ -133,15 +129,7 @@ android {
133129 }
134130135131 lint {
136- disable +=
137-setOf(
138-"AndroidGradlePluginVersion",
139-"GradleDependency",
140-"HighAppVersionCode",
141-"IconLauncherShape",
142-"NewerVersionAvailable",
143-"OldTargetApi",
144- )
132+ lintConfig = file("lint.xml")
145133 warningsAsErrors = true
146134 }
147135@@ -184,57 +172,57 @@ ktlint {
184172}
185173186174dependencies {
187-val composeBom = platform("androidx.compose:compose-bom:2026.04.01")
175+val composeBom = platform(libs.androidx.compose.bom)
188176 implementation(composeBom)
189177 androidTestImplementation(composeBom)
190178191- implementation("androidx.core:core-ktx:1.18.0")
192- implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.10.0")
193- implementation("androidx.activity:activity-compose:1.13.0")
194- implementation("androidx.webkit:webkit:1.15.0")
179+ implementation(libs.androidx.core.ktx)
180+ implementation(libs.androidx.lifecycle.runtime.ktx)
181+ implementation(libs.androidx.activity.compose)
182+ implementation(libs.androidx.webkit)
195183196- implementation("androidx.compose.ui:ui")
197- implementation("androidx.compose.ui:ui-tooling-preview")
198- implementation("androidx.compose.material3:material3")
184+ implementation(libs.androidx.compose.ui)
185+ implementation(libs.androidx.compose.ui.tooling.preview)
186+ implementation(libs.androidx.compose.material3)
199187// material-icons-extended pulled in full icon set (~20 MB DEX). Only ~18 icons used.
200188// R8 will tree-shake unused icons when minify is enabled on release builds.
201- implementation("androidx.compose.material:material-icons-extended")
189+ implementation(libs.androidx.compose.material.icons.extended)
202190203- debugImplementation("androidx.compose.ui:ui-tooling")
191+ debugImplementation(libs.androidx.compose.ui.tooling)
204192205193// Material Components (XML theme + resources)
206- implementation("com.google.android.material:material:1.13.0")
194+ implementation(libs.material)
207195208- implementation("org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2")
209- implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.11.0")
196+ implementation(libs.kotlinx.coroutines.android)
197+ implementation(libs.kotlinx.serialization.json)
210198211- implementation("androidx.security:security-crypto:1.1.0")
212- implementation("androidx.exifinterface:exifinterface:1.4.2")
213- implementation("com.squareup.okhttp3:okhttp:5.3.2")
214- implementation("org.bouncycastle:bcprov-jdk18on:1.84")
215- implementation("org.commonmark:commonmark:0.28.0")
216- implementation("org.commonmark:commonmark-ext-autolink:0.28.0")
217- implementation("org.commonmark:commonmark-ext-gfm-strikethrough:0.28.0")
218- implementation("org.commonmark:commonmark-ext-gfm-tables:0.28.0")
219- implementation("org.commonmark:commonmark-ext-task-list-items:0.28.0")
199+ implementation(libs.androidx.security.crypto)
200+ implementation(libs.androidx.exifinterface)
201+ implementation(libs.okhttp)
202+ implementation(libs.bcprov)
203+ implementation(libs.commonmark)
204+ implementation(libs.commonmark.ext.autolink)
205+ implementation(libs.commonmark.ext.gfm.strikethrough)
206+ implementation(libs.commonmark.ext.gfm.tables)
207+ implementation(libs.commonmark.ext.task.list.items)
220208221209// CameraX (for node.invoke camera.* parity)
222- implementation("androidx.camera:camera-core:1.6.0")
223- implementation("androidx.camera:camera-camera2:1.6.0")
224- implementation("androidx.camera:camera-lifecycle:1.6.0")
225- implementation("androidx.camera:camera-video:1.6.0")
226- implementation("com.google.android.gms:play-services-code-scanner:16.1.0")
210+ implementation(libs.androidx.camera.core)
211+ implementation(libs.androidx.camera.camera2)
212+ implementation(libs.androidx.camera.lifecycle)
213+ implementation(libs.androidx.camera.video)
214+ implementation(libs.play.services.code.scanner)
227215228216// Unicast DNS-SD (Wide-Area Bonjour) for tailnet discovery domains.
229- implementation("dnsjava:dnsjava:3.6.4")
230-231- testImplementation("junit:junit:4.13.2")
232- testImplementation("org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2")
233- testImplementation("io.kotest:kotest-runner-junit5-jvm:6.1.11")
234- testImplementation("io.kotest:kotest-assertions-core-jvm:6.1.11")
235- testImplementation("com.squareup.okhttp3:mockwebserver:5.3.2")
236- testImplementation("org.robolectric:robolectric:4.16.1")
237- testRuntimeOnly("org.junit.vintage:junit-vintage-engine:6.0.3")
217+ implementation(libs.dnsjava)
218+219+ testImplementation(libs.junit)
220+ testImplementation(libs.kotlinx.coroutines.test)
221+ testImplementation(libs.kotest.runner.junit5)
222+ testImplementation(libs.kotest.assertions.core)
223+ testImplementation(libs.mockwebserver)
224+ testImplementation(libs.robolectric)
225+ testRuntimeOnly(libs.junit.vintage.engine)
238226}
239227240228tasks.withType<Test>().configureEach {
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。