Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何模仿Gradle';Travis CI build的s buildConfigField?_Android_Gradle_Continuous Integration_Travis Ci - Fatal编程技术网

Android 如何模仿Gradle';Travis CI build的s buildConfigField?

Android 如何模仿Gradle';Travis CI build的s buildConfigField?,android,gradle,continuous-integration,travis-ci,Android,Gradle,Continuous Integration,Travis Ci,我尝试将我的android应用程序与Travis CI集成。我的应用程序需要一个api密钥,不应该在repo中发布。因此,我将我的api密钥放入全局gradle属性文件~/.gradle/gradle.properties: MY_SECRET_API_KEY="aaaabbbcccdddeeefff" 然后我在app/build.gradle文件(位于公共存储库中)中读取该值,并将其设置为buildconfig字段: apply plugin: 'com.android.applicatio

我尝试将我的android应用程序与Travis CI集成。我的应用程序需要一个api密钥,不应该在repo中发布。因此,我将我的api密钥放入全局gradle属性文件
~/.gradle/gradle.properties

MY_SECRET_API_KEY="aaaabbbcccdddeeefff"
然后我在
app/build.gradle
文件(位于公共存储库中)中读取该值,并将其设置为buildconfig字段:

apply plugin: 'com.android.application'

android {

    // ...

    buildTypes.each {
        it.buildConfigField "String", "API_KEY", MY_SECRET_API_KEY
    }

    // ...
}
并通过访问
BuildConfig.api\u key
在应用程序代码中使用此api密钥

我从Travic CI收到以下错误消息:
在com.android.build.gradle.AppExtension\u装饰上找不到属性“MY\u SECRET\u API\u KEY”。

使用Travis的环境变量;更具体地说,使用加密变量,以便在生成输出中始终屏蔽安全变量的值。不过,您可以将gradle脚本中的Tavis env变量读取为
System.getenv('key')
。在本地端使用环境变量也更干净。如果仍要使用gradle.properties,可以执行以下操作:

hasProperty('secret_api_key') ? secret_api_key: System.getenv('secret_api_key')
要设置Travis环境变量,请参见:

那么gradle.properties在你的本地机器上吗?@RaGe,是的
gradle.properties
仅在我的本地机器上Avis在远程服务器上,对吗?它看不到你的梯度。属性?是的,没错。travis ci位于远程服务器上,因此没有
gradle.properties
文件。这就是我的问题,有没有办法配置gradle(或travis ci)来构建我的项目,而不必在存储库中发布
gradle.properties
。@MichaelVescovo,是的,我使用的是