我想从local.properties文件中检索密钥,该文件如下所示:
local.properties
sdk.dir=C\:\\Users\\i30mb1\\AppData\\Local\\Android\\Sdk key="xxx"
并通过GradleKotlinDSL将此值保存在我的BuildConfig.java中。然后从我的项目中访问此字段。
BuildConfig.java
nhn9ugyo1#
好吧我找到解决办法了
Android项目:
1.在我的build.gradle.kts中,我创建了一个值来检索我的键:
import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties val key: String = gradleLocalProperties(rootDir).getProperty("key")
1.在块buildTypes中,我写:
buildTypes
buildTypes { getByName("debug") { buildConfigField("String", "key", key) } }
1.在我的Activity中,现在我可以检索这个值:
override fun onCreate() { super.onCreate() val key = BuildConfig.key }
对于Kotlin项目:
1.我们可以创建一个扩展来帮助我们检索所需的密钥:
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) }
1.当我们需要的时候使用这个扩展
task("printKey") { doLast { val key = getLocalProperty("key") println(key) } }
wljmcqd82#
如果您没有gradleLocalProperties的访问权限(仅适用于Android项目):
gradleLocalProperties
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.*
cngwdvgl3#
把你的财产在local.properties并在build.gradle(app).kts文件中引用如下:gradleLocalProperties(rootDir).getProperty(“YOUR_PROP_NAME”)
kadbb4594#
对我来说,Android项目的完整解决方案是:1 -把你的钥匙放在当地的房产里。2 - in build.gradle.kts =>添加2行
val key: String = gradleLocalProperties(rootDir).getProperty("KEY") ?: "" buildConfigField("String", "KEY", "\"$key\"")
val key = BuildConfig.KEY
4条答案
按热度按时间nhn9ugyo1#
好吧我找到解决办法了
Android项目:
1.在我的build.gradle.kts中,我创建了一个值来检索我的键:
1.在块
buildTypes
中,我写:1.在我的Activity中,现在我可以检索这个值:
对于Kotlin项目:
1.我们可以创建一个扩展来帮助我们检索所需的密钥:
1.当我们需要的时候使用这个扩展
wljmcqd82#
如果您没有
gradleLocalProperties
的访问权限(仅适用于Android项目):别忘了进口:
cngwdvgl3#
把你的财产在local.properties
并在build.gradle(app).kts文件中引用如下:gradleLocalProperties(rootDir).getProperty(“YOUR_PROP_NAME”)
kadbb4594#
对我来说,Android项目的完整解决方案是:
1 -把你的钥匙放在当地的房产里。
2 - in build.gradle.kts =>添加2行
==现在你可以像这样在代码中获取密钥: