通过 Kotlin DSL 从 local.properties 读取值
Read value from local.properties via Kotlin DSL
我想从 local.properties
文件中检索密钥,如下所示:
sdk.dir=C\:\Users\i30mb1\AppData\Local\Android\Sdk
key="xxx"
并通过 gradle Kotlin DSL 将此值保存在我的 BuildConfig.java
中。稍后可以从我的项目中访问该字段。
好的。我找到了解决方案。
对于 Android 个项目:
- 在我的 build.gradle.kts 中,我创建了一个检索我的密钥的值:
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
val key: String = gradleLocalProperties(rootDir).getProperty("key")
- 然后在
buildTypes
块中,我写了它:
buildTypes {
getByName("debug") {
buildConfigField("String", "key", key)
}
}
- 在我的 Activity 中,现在我可以检索这个值:
override fun onCreate() {
super.onCreate()
val key = BuildConfig.key
}
对于 Kotlin 项目:
- 我们可以创建一个扩展来帮助我们检索所需的密钥:
fun Project.getLocalProperty(key: String, file: String = "local.properties"): Any {
val properties = java.util.Properties()
val localProperties = File(file)
if (localProperties.isFile) {
java.io.InputStreamReader(java.io.FileInputStream(localProperties), Charsets.UTF_8).use { reader ->
properties.load(reader)
}
} else error("File from not found")
return properties.getProperty(key)
}
- 并在我们需要时使用此扩展程序
task("printKey") {
doLast {
val key = getLocalProperty("key")
println(key)
}
}
如果您无权访问 gradleLocalProperties
(只有 android 个项目可以访问):
val prop = Properties().apply {
load(FileInputStream(File(rootProject.rootDir, "local.properties")))
}
println("Property:" + prop.getProperty("propertyName"))
不要忘记导入:
import java.io.File
import java.io.FileInputStream
import java.util.*
将你的 属性 放入
local.properties
并在 build.gradle(app).kts 文件中这样引用它:
gradleLocalProperties(rootDir).getProperty("YOUR_PROP_NAME")
我想从 local.properties
文件中检索密钥,如下所示:
sdk.dir=C\:\Users\i30mb1\AppData\Local\Android\Sdk
key="xxx"
并通过 gradle Kotlin DSL 将此值保存在我的 BuildConfig.java
中。稍后可以从我的项目中访问该字段。
好的。我找到了解决方案。
对于 Android 个项目:
- 在我的 build.gradle.kts 中,我创建了一个检索我的密钥的值:
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties
val key: String = gradleLocalProperties(rootDir).getProperty("key")
- 然后在
buildTypes
块中,我写了它:
buildTypes {
getByName("debug") {
buildConfigField("String", "key", key)
}
}
- 在我的 Activity 中,现在我可以检索这个值:
override fun onCreate() {
super.onCreate()
val key = BuildConfig.key
}
对于 Kotlin 项目:
- 我们可以创建一个扩展来帮助我们检索所需的密钥:
fun Project.getLocalProperty(key: String, file: String = "local.properties"): Any {
val properties = java.util.Properties()
val localProperties = File(file)
if (localProperties.isFile) {
java.io.InputStreamReader(java.io.FileInputStream(localProperties), Charsets.UTF_8).use { reader ->
properties.load(reader)
}
} else error("File from not found")
return properties.getProperty(key)
}
- 并在我们需要时使用此扩展程序
task("printKey") {
doLast {
val key = getLocalProperty("key")
println(key)
}
}
如果您无权访问 gradleLocalProperties
(只有 android 个项目可以访问):
val prop = Properties().apply {
load(FileInputStream(File(rootProject.rootDir, "local.properties")))
}
println("Property:" + prop.getProperty("propertyName"))
不要忘记导入:
import java.io.File
import java.io.FileInputStream
import java.util.*
将你的 属性 放入 local.properties
并在 build.gradle(app).kts 文件中这样引用它: gradleLocalProperties(rootDir).getProperty("YOUR_PROP_NAME")