设置Firebase + Crashlytics时Android项目构建失败

我对Firebase + Crashlytics + Android有疑问。 在Android Studio我收到以下错误:

org.gradle.api.GradleException:Crashlytics Developer Tools错误。 com.crashlytics.tools.android.exception.PluginException:Crashlytics Developer Tools错误。 java.lang.illegalArgumentException:Crashlytics发现了一个无效的API密钥:null。

我按照这里和这里的说明进行操作。 据我了解,我不需要在项目中设置apiKeyFirebase将负责这一点。 但项目构建仍然失败并抱怨。 我无法在网上find适当的帮助。 关于Crashlytics的文档似乎也在Firebase上进行测试。

我最接近的是有人建议我设置一个带有apiKey字段集的fabric.properties文件。 但在Firebase – > Crashlytics仪表板上,我无法find此API密钥。

有谁知道如何解决这个问题?

注1 :我没有Firebase上项目的管理员权限。 也许钥匙只对他们可见?

注2 :它实际上是一个react-native项目。 但这不应该真正有所作为,因为这纯粹是本机端配置。

编辑 :根据要求添加app/build.gradle

 apply plugin: "com.android.application" apply plugin: "io.fabric" apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle" // MANUAL CHANGE import com.android.build.OutputFile def enableSeparateBuildPerCPUArchitecture = false def enableProguardInReleaseBuilds = false android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.my.app" minSdkVersion 16 targetSdkVersion 23 versionCode 4 versionName "1.0" ndk { abiFilters "armeabi-v7a", "x86" } } splits { abi { reset() enable enableSeparateBuildPerCPUArchitecture universalApk false // If true, also generate a universal APK include "armeabi-v7a", "x86" } } buildTypes { release { minifyEnabled enableProguardInReleaseBuilds proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" signingConfig signingConfigs.release } } applicationVariants.all { variant -> variant.outputs.each { output -> def versionCodes = ["armeabi-v7a":1, "x86":2] def abi = output.getFilter(OutputFile.ABI) if (abi != null) { // null for the universal-debug, universal-release variants output.versionCodeOverride = versionCodes.get(abi) * 1048576 + defaultConfig.versionCode } } } } dependencies { compile(project(':react-native-firebase')) { transitive = false } compile project(':react-native-push-notification') compile project(':react-native-google-analytics-bridge') compile project(':react-native-device-info') compile (project(':react-native-google-analytics-bridge')) { exclude group: 'com.google.android.gms' } compile (project(':react-native-device-info')) { exclude group: 'com.google.android.gms' } compile (project(':react-native-push-notification')) { exclude group: 'com.google.android.gms' } compile(project(':react-native-maps')) { exclude group: 'com.google.android.gms' } compile project(':react-native-config') compile project(':react-native-vector-icons') compile('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') { transitive = true } // Forcing version 11.8.0 of play-services because that's the version firebase needs for all its features compile ("com.google.android.gms:play-services-maps:11.8.0") { force = true } compile ("com.google.android.gms:play-services-gcm:11.8.0") { force = true } //Analytics compile ('com.google.firebase:firebase-core:11.8.0') { force = true } //Cloud Messaging compile ('com.google.firebase:firebase-messaging:11.8.0') { force = true } //Authentication compile ('com.google.firebase:firebase-auth:11.8.0') { force = true } compile fileTree(dir: "libs", include: ["*.jar"]) compile "com.android.support:appcompat-v7:23.0.1" compile "com.facebook.react:react-native:+" // From node_modules } task copyDownloadableDepsToLibs(type: Copy) { from configurations.compile into 'libs' } 

Mike来自Firebase。 如果您是现有的Firebase客户,通过Fabric使用Crashlytics,那么这就是您的文件应该是什么样子。 注意:我们没有正式的React Native支持,因此我不包含任何这些文件。 鉴于这里的原生实现,我不认为它是相关的,但试图明确:)

项目build.gradle:

 // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'com.android.tools.build:gradle:3.0.1' classpath 'com.google.gms:google-services:3.2.0' // google-services plugin classpath 'io.fabric.tools:gradle:1.25.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() maven { url 'https://maven.google.com/' } } } task clean(type: Delete) { delete rootProject.buildDir } 

App的build.gradle:

 buildscript { repositories { maven { url 'https://maven.fabric.io/public' } } dependencies { classpath 'io.fabric.tools:gradle:1.25.1' } } apply plugin: 'com.android.application' apply plugin: 'io.fabric' repositories { maven { url 'https://maven.fabric.io/public' } maven {url 'https://maven.google.com'} // Google's Maven repository} } android { compileSdkVersion 25 buildToolsVersion "26.0.2" defaultConfig { applicationId "com.example.mbonnell.myapplication" minSdkVersion 15 targetSdkVersion 25 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debug { minifyEnabled false } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.0' testCompile 'junit:junit:4.12' compile('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') { transitive = true; } compile('com.google.firebase:firebase-core:11.8.0') } apply plugin: 'com.google.gms.google-services' 

AndroidManifest.xml中:

                

MainActivity.java:

应该有一些Firebase的实现。 为了简单起见,我正在初始化Firebase分析:

 public class MainActivity extends AppCompatActivity { private FirebaseAnalytics mFirebaseAnalytics; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mFirebaseAnalytics = FirebaseAnalytics.getInstance(this); setContentView(R.layout.activity_main); }