Joe*_*hew 25 android gradle android-studio android-gradle-plugin
我正在使用Android Studio在Ubuntu 14.04系统上构建我的项目.
我在build.gradle文件中写了以下内容,以避免在我的git仓库中硬编码storeFile,storePassword,keyAlias和keyPassword:
signingConfigs {
debug {
storeFile file(System.getenv("KEYSTORE"))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
Run Code Online (Sandbox Code Playgroud)
但是使用以下内容来清除同步错误: Error:(49, 0) Neither path nor baseDir may be null or empty string. path='null' basedir='./pathto/TMessagesProj'
我的.bashrc包含:source ~/.gradlerc而我的〜/ .gradlerc包含以下内容:
export KEYSTORE="/home/myname/keystore/mykey"
export KEYSTORE_PASSWORD='mypass'
export KEY_ALIAS='mykey'
export KEY_PASSWORD='keypass'
Run Code Online (Sandbox Code Playgroud)
我已经确认这些变量是由shell正确导入的.但是我不确定它为什么没有被Android Studio中的构建环境接收.
在gradle中使用环境变量的正确方法是什么?
FMo*_*ano 23
我也喜欢将我的密钥库信息放在我的环境变量上,而不是将其放在项目中.您的代码似乎很好,但我遇到了与文件路径相同的问题.我通过将该值转换为字符串之前解决了它,然后将其传递给file():
signingConfigs {
debug {
storeFile file(String.valueOf(System.getenv("KEYSTORE")))
storePassword System.getenv("KEYSTORE_PASSWORD")
keyAlias System.getenv("KEY_ALIAS")
keyPassword System.getenv("KEY_PASSWORD")
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
gradle.properties在源文件夹中创建一个文件(旁边build.gradle)以仅应用于当前项目或在~/.gradle/gradle.properties系统范围内应用内容:
keystore=/home/myname/keystore/mykey
keystore_password=mypass
key_alias=mykey
key_password=keypass
Run Code Online (Sandbox Code Playgroud)
现在用以下内容更新build.gradle文件:
debug {
storeFile file("${keystore}")
storePassword "${keystore_password}"
keyAlias "${key_alias}"
keyPassword "${key_password}"
}
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用该-P选项从命令行传递参数.例如,./gradlew assemble -Pkey_password=keypass.
| 归档时间: |
|
| 查看次数: |
19190 次 |
| 最近记录: |