Не удается избавиться от ошибки, выдаваемой Crashlytics в сложном проекте - PullRequest
1 голос
/ 20 сентября 2019

Я больше недели пытаюсь интегрировать Crashlytics в один из моих проектов.Я пробовал следующие вещи ..

  • Если я попытался реализовать во вновь созданном проекте, не содержащем ни одну из зависимостей и их использование тоже, что я покажу вам ниже, Crashlytics настраиваетсяавтоматически после следования официальным документам Firebase.

  • Если я попытался внедрить его в проект, содержащий следующие зависимости и их использование в проекте, он выдаст 3 вида ошибок.

    1. Must initialize Fabric before using singleton. Когда я инициализирую Fabric в одном из моих классов Application, то после компиляции он показывает следующую ошибку ..

    2. Fabric Api key is missing from manifest, Please add it in manifestили что-то типа того.Когда я решил это тоже, скопировав ключ api из моей консоли в fabric.io и вставив его в манифест соответствующим образом, то после компиляции он показал следующую ошибку:

    3. The Crashlytics build ID is missing. И этоошибка, которая никогда не исчезнет, ​​даже если я попробую различные решения, связанные с этим.Это просто никогда не идет.

Но стоит отметить, что все эти дополнительные вещи не требуются, когда я добавил Crashlytics в простой проект NOT содержит следующие зависимости и их использование в проекте.

Вот эти зависимости

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'
...