Android:无法在Gradle中解析resValue变量

时间:2017-04-04 13:30:26

标签: android android-gradle

我正在关注来自vogella.com的关于Retrofit的android示例。

http://www.vogella.com/tutorials/Retrofit/article.html

我被困在应该做以下事情的地方:

添加stackapp id和密钥

根据Vogella的说法

注册申请后,您将获得客户ID和密钥。由于我们希望将它们从可能的版本控制系统中删除,我们使用gradle将它们导入到我们的项目中。为此,请转到gradle主目录(.gradle /在用户主目录中)并将以下行粘贴到gradle.properties文件中(如果找不到,则创建一个)。当然,将yourKey和yourClientId替换为Stackapps中的相应值。

我去了这个目录并创建了一个新文件

gradle.properties

并在该文件中添加了密钥

key=xxxxxxxx
client_id=xxxx

然后在gradle.properties中我在deafultconfig {

中添加了以下内容
 resValue("string", "key", project.key)
 resValue("string", "client_id", project.client_id)

但是密钥和client_id都无法解决。

解决方案可以解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

尝试更改sintax:

resValue "string", "key", project.key
resValue "string", "client_id", project.client_id

并且不要忘记在gradle文件中添加变量:

ext.key = "your_key"
ext.client_id = 0

答案 1 :(得分:0)

第三个参数应该是一个字符串,您应该在local.properties中定义键和cliend_id并使用以下代码:

Properties lp = new Properties()
lp.load(newInputStreamReader(project.rootProject.file('local.properties').newInputStream(), StandardCharsets.UTF_8))

resValue "string", "key", p.getProperty('key', '0')//default "0"
resValue "string", "client_id", p.getProperty('client_id', '0')