Android 从Gradle设置FabricIO键:“0”;Crashalytics开发者工具错误“;
因此,我的build.gradle中有以下代码:Android 从Gradle设置FabricIO键:“0”;Crashalytics开发者工具错误“;,android,jenkins,gradle,Android,Jenkins,Gradle,因此,我的build.gradle中有以下代码: defaultConfig { manifestPlaceholders = [fabricKey: getFabricKey()] } def getFabricKey() { String path = System.getenv("HOME") + "/.apikeys/fabric_key.gradle" if (file(path).exists()) { return new File(pat
defaultConfig {
manifestPlaceholders = [fabricKey: getFabricKey()]
}
def getFabricKey() {
String path = System.getenv("HOME") + "/.apikeys/fabric_key.gradle"
if (file(path).exists()) {
return new File(path).text;
} else {
return "null";
}
}
在AndroidManifest.xml中,我有以下内容:
<meta-data
android:name="io.fabric.ApiKey"
android:value="${fabricKey}" />
~/.apikeys/fabric\u key.gradle存在于我的机器上。然而,当我试图构建项目时,会弹出“Crashalytics开发人员工具错误”。
如果我只是放置我的密钥而不是${fabricKey},它就可以正常工作
我做错了什么
另外,我要澄清的是:我想要实现的是,在将apikey从公开访问的git repo中删除的同时,仍然能够在我的Jenkins服务器上生成构建
编辑:
在手动运行gradlew AssembledBug而不是IDE之后,我发现:
java.lang.IllegalArgumentException:Crashlytics发现一个无效的API键:myValidApiKey
(其中myValidApiKey是一个在用自身替换${fabricKey}时起作用的键) 听起来路径是错误的,只要找不到结构密钥,就会发生该错误。您是否尝试向gradle方法添加一些日志记录,以查看它是否认为该文件存在?是的,找到了该文件,只是用其他日志记录检查了它。相应地用一些新信息更新了OP。myValidApiKey上是否有尾随空格?不,我已经检查了两次。好的。这显然是代码或文件的问题。我这样做是为了使用环境变量,而不是从文件中读取。它起作用了。我很想首先了解错误的原因是什么。。。但它现在可以工作。听起来好像路径是错误的,只要找不到结构密钥,就会发生错误。您是否尝试向gradle方法添加一些日志记录,以查看它是否认为该文件存在?是的,找到了该文件,只是用其他日志记录检查了它。相应地用一些新信息更新了OP。myValidApiKey上是否有尾随空格?不,我已经检查了两次。好的。这显然是代码或文件的问题。我这样做是为了使用环境变量,而不是从文件中读取。它起作用了。我很想首先了解错误的原因是什么。。。但它现在起作用了。