我按照Firebase Auth UI page上的步骤操作,以便在我的Android应用中使用Firebase auth插件解决方案和电话号码验证提供商。我在我的项目中使用了Crashlytics,并且我正在从Digits迁移到Firebase,所以这是gradle文件的相关部分:
// firebase dependencies
compile 'com.google.firebase:firebase-auth:11.0.1'
compile 'com.firebaseui:firebase-ui-auth:2.0.1'
compile 'com.firebase:digitsmigrationhelpers:0.1.1'
compile 'com.google.android.gms:play-services-auth:11.0.1'
// crashlytics
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}
// digits (to be removed after migration is complete)
compile('com.digits.sdk.android:digits:2.0.2@aar') {
transitive = true;
}
这就是我初始化Fabric的方式:
if (Constants.DEBUG)
Fabric.with(context, new TwitterCore(authConfig), new Digits.Builder().withTheme(R.style.CustomDigitsTheme).build());
else
Fabric.with(context, new TwitterCore(authConfig), new Digits.Builder().withTheme(R.style.CustomDigitsTheme).build(), new Crashlytics());
但是,当Constants.DEBUG为true时,我在gradle同步时收到以下错误(删除Fabric init中的Digits对象不会对此问题产生任何影响):
Error:Execution failed for task ':app:fabricGenerateResourcesDebug'.
> Crashlytics Developer Tools error.
(这是pastebin of the stacktrace)
删除Crashlytics依赖项会暂时解决此问题。是否存在依赖冲突,或者这是一个错误?
在我的项目中,我只使用相应的键(而不是 fabric.properties 文件)设置 crashlytics.properties 文件。在将此依赖项添加到我的应用程序的模块gradle文件之前,我没有出现错误。
更新:我之前曾说过删除Crashlytics依赖项解决了这个问题,但它实际上是' com.firebaseui:firebase-ui-auth:2.0 .1' 依赖项,当它包含在gradle文件中时会产生错误。
更新2:感谢所有评论过的人。研究堆栈跟踪输出后,我发现更具描述性的错误是:
java.lang.IllegalArgumentException: Crashlytics found an invalid API key: @string/twitter_consumer_secret.
我会调查一下,虽然我觉得这个错误是由于包含' com.firebaseui:firebase-ui-auth:2.0.1' 依赖。
答案 0 :(得分:2)
firebase-ui-auth repo已经更新,这不再是问题了。以下build.gradle代码段适用于我:
// firebase stuff
compile 'com.google.firebase:firebase-auth:11.2.0'
compile 'com.firebaseui:firebase-ui-auth:2.3.0'
compile 'com.firebase:digitsmigrationhelpers:0.1.1'
compile 'com.google.android.gms:play-services-auth:11.2.0'
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
transitive = true;
}