是否可以在Gradle中声明一个可用于Java的变量?基本上我想在build.gradle中声明一些变量,然后在构建时获取它(显然).就像C/C++中的预处理器宏一样......
宣言的一个例子就是那样......:
android {
debug {
A_VAR_RETRIEVABLE_IN_JAVA = 42
}
release {
A_VAR_RETRIEVABLE_IN_JAVA = 42+52
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法做那样的事情?
我正在尝试设置签名过程,以便密钥库密码和密钥密码不会存储在项目的build.gradle文件中.
目前我在以下方面有build.gradle:
android {
...
signingConfigs {
release {
storeFile file("my.keystore")
storePassword "store_password"
keyAlias "my_key_alias"
keyPassword "key_password"
}
}
buildTypes {
release {
signingConfig signingConfigs.release
}
}
}
Run Code Online (Sandbox Code Playgroud)
它的工作原理完全没有问题,但我不能把值的storePassword,而且keyPassword在我的仓库.我宁愿不把storeFile和keyAlias有两种.
有没有办法改变build.gradle它,以便它从某些外部源获取密码(如仅存在于我的计算机上的文件)?
当然,更改的内容build.gradle应该可以在任何其他计算机上使用(即使计算机无法访问密码).
我正在使用Android Studio和Mac OS X Maverics,如果它确实重要.
我如何在Gradle中包含属性文件?
例如在Ant中,我可以执行以下操作:
<property file="${basedir}/build.properties" />
Run Code Online (Sandbox Code Playgroud) 我刚刚从1.0.0更新了Android Gradle插件到1.1.0,我收到了这个错误:
没有方法签名:com.android.build.gradle.LibraryPlugin.getNdkFolder()适用于参数类型:()值:[]
我试图找到gradle插件1.0.0到1.1.0的差异,但无法在网上找到任何地方.
似乎getNdkFolder方法已被更改或删除.
有替代品吗?或者任何其他方式获得NdkFolder?
我正在使用这样的方法,
def ndkDir = project.plugins.findPlugin('com.android.library').getNdkFolder()
我还针对Android问题跟踪器中的工具团队提出了问题:https://code.google.com/p/android/issues/detail? id = 152810
谢谢 !
android android-ndk android-build android-studio android-gradle-plugin
我想知道在Android工作室中存储api密钥的最佳方法是什么.我想使用gitignore从github中排除这个文件.
我看到有些人在HOME目录中使用gradle.properties,但是api特定于我的应用程序.
我还注意到新的android工作室项目中有一个gradle.properties,但这可能包含我可能不想排除的其他内容.
谁知道最好的方法呢?
因此该文件将在本地可用,我的项目将在运行时读取它,但我"可能"gitignore这个文件所以我不会提交它所以我不会暴露我的api密钥.
我的项目根目录中有 local.properties 文件。
sdk.dir=C\:\\Users\\vucet\\AppData\\Local\\Android\\Sdk
versionName='7.0'
Run Code Online (Sandbox Code Playgroud)
并在 app 模块中的 build gradle 中,我试图以这种方式获取 versionName
Properties properties = new Properties()
if (project.rootProject.file('local.properties').exists()) {
properties.load(project.rootProject.file('local.properties').newDataInputStream())
}
def getVerCode = { ->
def code = project.hasProperty("versionCode") ? project.versionCode.toInteger() : 1000
return code
}
def getVerName = { ->
def name = project.hasProperty("versionName") ? project.versionName.toString() : "5.0"
return name
}
Run Code Online (Sandbox Code Playgroud)
但每次我得到 5.0 值。请任何人都可以帮助我吗?