Ошибка Crashlytics. Это приложение основано на Crashlytics. Пожалуйста, зарегистрируйтесь для доступа

У меня есть два варианта сборки в gradle, но по какой-то причине, когда я изменяю следующий флаг на false, я получаю заголовок сообщения об ошибке:

ext.enableCrashlytics = false

сама ошибка завершена ниже:

Process: com.mobile.myapp.staging, PID: 5439
java.lang.RuntimeException: Unable to create application com.mobile.myapp.UI.myappApplication: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
install an Android build tool and ask a team member to invite you to this app organization.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4710)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up,
install an Android build tool and ask a team member to invite you to this app organization.
at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:234)
at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:207)
at io.fabric.sdk.android.InitializationTask.onPreExecute(InitializationTask.java:44)
at io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611)
at io.fabric.sdk.android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.java:43)
at io.fabric.sdk.android.Kit.initialize(Kit.java:69)
at io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:440)
at io.fabric.sdk.android.Fabric.init(Fabric.java:384)
at io.fabric.sdk.android.Fabric.setFabric(Fabric.java:342)
at io.fabric.sdk.android.Fabric.with(Fabric.java:313)
at com.mobile.myapp.UI.base.BaseApplication.setupExceptionHandling(BaseApplication.java:51)
at com.mobile.myapp.UI.myappApplication.onCreate(myappApplication.java:45)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)

И вот как я инициализирую crashlytics в моем подклассе Application:

Fabric.with(this, new Crashlytics());

то, что я пытаюсь сделать, - это контролировать, могут ли крахлитики работать или нет. скажем, я хочу, чтобы flavor1 не запускал crashlytics, я думал, что могу использовать этот флаг gradle и установить его в false. я что-то пропустил?

Ответ 1

Дополнение к Todd Burner

Будьте осторожны с BuildConfig.DEBUG. IDE может автоматически импортировать его из

com.crashlytics.android.BuildConfig (= false)

вместо конфигурации вашего приложения

${app_package}.BuildConfig

ОБНОВЛЕНИЕ

Предоставление примера по запросу j2emanue

    ...
    import com.fiot.ot.BuildConfig             <- should be
    import com.crashlytics.android.BuildConfig <- my IDE automatically imported 

    fun initFabric(context: Context) {
        val core = CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()
        val kit = Crashlytics.Builder().core(core).build()
        Fabric.with(context, kit)
    }

Где com.fiot.ot имя пакета моего приложения

Ответ 2

Может быть, не хватает применить плагин ткань

Я добавил эту строку поверх файла app/build.gradle решить мои проблемы!

применить плагин: 'io.fabric'

Ответ 3

Всякий раз, когда я устанавливаю

ext.enableCrashlytics = false

мое приложение выходит из строя с помощью

io.fabric.sdk.android.services.concurrency.UnmetDependencyException

This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up, install an Android build tool and ask a team member to invite you to this app organization.

Мне кажется, что мне нужно отключить автоматическую инициализацию Crashlytics, добавив эту строку в AndroidManifest.xml

<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />

Затем я вручную инициализирую Crashlytics в методе onCreate() моего подкласса Application, используйте BuildConfig.DEBUG, чтобы решить, следует ли отключить CrashlyticsCore и вызвать Fabric.with(). Фактически, я больше не устанавливал

ext.enableCrashlytics = false

. Кажется, все это работает для меня.

Ответ 4

Тодд из ткани. Вы получите эту ошибку, если вы также не отключите Fabric во время выполнения.

    // Set up Crashlytics, disabled for debug builds
Crashlytics crashlyticsKit = new Crashlytics.Builder()
    .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
    .build();

// Initialize Fabric with the debug-disabled crashlytics.
Fabric.with(this, crashlyticsKit);

Проверьте эту ссылку для получения дополнительной информации: https://docs.fabric.io/android/crashlytics/build-tools.html#disable-crashlytics-for-debug-builds

Ответ 5

Для Android Xamarin

Вы должны иметь следующее, чтобы не получить вышеуказанную ошибку:

  1. Включите пакеты NuGet:
    • Xamarin.Android.Crashlytics [от Microsoft]
    • Xamarin.Android.Crashlytics.Core [от Microsoft]
    • Xamarin.Android.Crashlytics.Beta [от Microsoft]
    • Xamarin.Android.Crashlytics.Answers [от Microsoft]
  2. Добавьте эту строку в свой файл AndroidManifest.xml в <application>:

    <meta-data android:name="io.fabric.ApiKey" android:value="<FABRIC_API_KEY>"/>

  3. Добавьте эту строку в файл Resources/values/Strings.xml:

    <string name="com.crashlytics.android.build_id">15</string>

  4. Добавьте эту строку в MainApplication.cs или YourActivity.cs в OnCreate():

    Fabric.Fabric.With(this, new Crashlytics.Crashlytics());

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


РЕДАКТИРОВАТЬ :

Насколько я понимаю, одно значение является обязательным, но не используется вообще. На самом деле вам не нужно увеличивать номер сборки в Strings.xml, он автоматически выбирает номер сборки из приложения, поэтому вам следует просто оставить значение по адресу: <string name="com.crashlytics.android.build_id">1</string>

Если вы испытываете по-другому для Xamarin, пожалуйста, прокомментируйте ниже.

Ответ 6

Убедитесь, что вы добавили в

app.gradle

apply plugin: 'io.fabric'

у меня тоже есть

classpath 'io.fabric.tools:gradle:1.26.1'

в

Зависимости проекта

и добавьте API Crashlytics в строки, зарегистрируйтесь на сайте Crashlytics

Ответ 7

В моем случае это сработало.

Итак, это проект верхнего уровня build.gradle

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'java'
allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
}

и это build.gradle для модуля приложения

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

android {
compileSdkVersion 22
buildToolsVersion "22.0.1"

defaultConfig {
    applicationId "your application package name"
    minSdkVersion 10
    targetSdkVersion 22
}

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

dependencies {
compile 'com.google.code.gson:gson:2.3'
compile 'com.android.support:support-v4:22.0.0'
testCompile 'junit:junit:4.12'
testCompile "org.mockito:mockito-core:1.9.5"
compile('com.crashlytics.sdk.android:crashlytics:[email protected]') {
    transitive = true;
}
}

и наконец "чистая сборка" и все было для меня установлено.