无法摆脱Crashlytics在复杂项目上引发的错误

时间:2019-09-20 02:48:40

标签: android firebase crashlytics crashlytics-android

我已经尝试了一个多星期,将Crashlytics集成到我的一个项目中。我尝试了以下方法。

  • 如果我尝试在不包含任何依赖关系及其用法的新创建项目中实施,我将在下面向您展示,那么Crashlytics将在遵循Firebase的官方文档后自动进行配置。

    < / li>
  • 如果我试图在包含以下依赖项及其在项目中的用法的项目中实现它,则会引发3种错误。

    1. Must initialize Fabric before using singleton. 当我在我的Application类之一中初始化Fabric时,然后在编译后,它显示以下错误。

    2. Fabric Api key is missing from manifest, Please add it in manifest或类似的东西。 当我通过从fabric.io中的控制台复制api密钥并将其适当地粘贴到清单中来解决该问题时, 然后在编译后显示以下错误。

    3. The Crashlytics build ID is missing. 即使我尝试了各种与此相关的解决方案,这也是从未发生过的错误。只是永远不会消失。

但是要注意的是,当我将Crashlytics添加到包含以下依赖项及其在项目中的用法的简单项目时,不需要所有这些额外的事情。

这是那些依赖项

implementation project(':library')
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.0.0'

implementation 'androidx.annotation:annotation:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

implementation 'com.sothree.slidinguppanel:library:3.4.0'

implementation 'de.hdodenhof:circleimageview:3.0.0'
implementation 'com.facebook.fresco:fresco:1.13.0'


implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

/* dagger dependency for DI*/
implementation "com.google.dagger:dagger:2.23.2"
annotationProcessor "com.google.dagger:dagger-compiler:2.23.2"
compileOnly 'javax.annotation:jsr250-api:1.0'
implementation 'javax.inject:javax.inject:1'

/*Retrofit lib*/
implementation 'com.squareup.retrofit2:retrofit:2.6.0'
implementation 'com.squareup.retrofit2:converter-gson:2.6.0'

/*RxJava lib*/
implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
implementation "io.reactivex.rxjava2:rxjava:2.2.9"
implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'

/* LiveData lib*/
implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0'
annotationProcessor 'androidx.lifecycle:lifecycle-common-java8:2.1.0'

/* Crashlytics */
implementation 'com.google.firebase:firebase-analytics:17.2.0'
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'

/* Necessary library for handling permission callbacks easily */
implementation 'pub.devrel:easypermissions:3.0.0'

/* Better logging */
implementation 'com.jakewharton.timber:timber:4.7.1'

这也是我和我的同伴建造的一个项目,我不知道他为什么在这个项目中以名为“库”的模块的形式添加了另一个项目,这就是为什么您可以看到implementation project(':library') 行的开头。但是我也尝试过删除它,并且仅在项目内部复制该项目的文件,而不是将其添加为单独的模块,但这并没有改变发生的错误。

如果你们中的任何一个知道解决方法或对Crashlytics在两种不同情况下的这种奇怪行为的任何解决方案,请回复。

编辑:
这是没有要求的密钥的清单文件

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="fibamlscan.app">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.CAMERA" />

    <application
        android:name=".App"
        android:usesCleartextTraffic="true"
        android:icon="@android:drawable/ic_menu_today"
        android:supportsRtl="true"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        tools:ignore="AllowBackup,GoogleAppIndexingWarning"
        tools:targetApi="m">
        <activity android:name=".s2s_transfer.S2STransferScanner" />
        <activity android:name=".s2s_transfer.S2STransferActivity" />
        <activity android:name=".stock_transfer_received.StockTransferReceivedActivity" />
        <activity android:name=".damaged_goods.DamagedGoodsActivity" />
        <activity android:name=".dispatch.CreateNewDispatchActivity" />
        <activity
            android:name=".dispatch.DispatchOrder"
            android:label="@string/title_activity_dispatch_order"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity
            android:name=".menu.MenuActivity"
            android:label="@string/title_activity_menu"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity android:name=".ui.login.LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".grn.PreviewActivity" />
        <activity
            android:name=".grn.GrnOrder"
            android:label="@string/title_activity_grn"
            android:theme="@style/AppTheme.NoActionBar" />
        <activity android:name=".dispatch.PreviewActivity" />
        <activity android:name=".metro.dispatch.PreviewActivity" />
        <activity android:name=".goodsreturn.CreateNewDispatchActivity" />
        <activity android:name=".goodsreturn.PreviewActivity" />
        <activity android:name=".goodsreturn.DispatchOrder" />
        <activity android:name=".metro.dispatch.DispatchOrder" />
        <activity android:name=".warehouseAudit.PreviewActivity" />
        <activity android:name=".audit.PreviewActivity" />
        <activity android:name=".damaged_goods.DamagedGoodsScanner" />
        <activity android:name=".warehouseAudit.WarehouseSelectionActivity" />

        <meta-data
            android:name="com.google.firebase.ml.vision.DEPENDENCIES"
            android:value="barcode" />

    </application>

</manifest>

编辑:

这是应用程序级别的build.gradle

apply plugin: 'com.android.application'
apply plugin: 'io.fabric'

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    defaultConfig {
        applicationId "co.behtarinternal.app"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        versionCode rootProject.ext.versionCode
        versionName "${rootProject.ext.versionName}"
        multiDexEnabled true

    }
    buildTypes {
        release {
            minifyEnabled false
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }

        debug {
            minifyEnabled false
//            signingConfig signingConfigs.debug
            useProguard false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'

        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}


dependencies {
    implementation project(':library')
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.google.android.material:material:1.0.0'

    implementation 'androidx.annotation:annotation:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

    implementation 'com.sothree.slidinguppanel:library:3.4.0'

    implementation 'de.hdodenhof:circleimageview:3.0.0'
    implementation 'com.facebook.fresco:fresco:1.13.0'


    implementation 'com.jakewharton:butterknife:10.1.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

    /* dagger dependency for DI*/
    implementation "com.google.dagger:dagger:2.23.2"
    annotationProcessor "com.google.dagger:dagger-compiler:2.23.2"
    compileOnly 'javax.annotation:jsr250-api:1.0'
    implementation 'javax.inject:javax.inject:1'

    /*Retrofit lib*/
    implementation 'com.squareup.retrofit2:retrofit:2.6.0'
    implementation 'com.squareup.retrofit2:converter-gson:2.6.0'

    /*RxJava lib*/
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.1'
    implementation "io.reactivex.rxjava2:rxjava:2.2.9"
    implementation 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'

    /* LiveData lib*/
    implementation 'androidx.lifecycle:lifecycle-extensions:2.1.0'
    implementation 'androidx.lifecycle:lifecycle-runtime:2.1.0'
    annotationProcessor 'androidx.lifecycle:lifecycle-common-java8:2.1.0'

    /* Crashlytics */
    implementation 'com.google.firebase:firebase-core:17.2.0'
    implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'

    /* Necessary library for handling permission callbacks easily */
    implementation 'pub.devrel:easypermissions:3.0.0'

    /* Better logging */
    implementation 'com.jakewharton.timber:timber:4.7.1'

}
apply plugin: 'com.google.gms.google-services'

0 个答案:

没有答案