CrashlyticsMissingDependencyException



Я использую последние Crashlytics (интеграция с тканью) на некоторое время. Но недавно я столкнулся со следующей ошибкой сбоя из-за отсутствующей зависимости, хотя я ничего не менял в конфигурациях Crashlytics.



есть идеи?



02-08 22:18:00.935  18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | |
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | |
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | |
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | | /
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . /
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . /
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . /
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ 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's organization.
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . /
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . /
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . /
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . / | |
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | |
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | |
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ . | |
02-08 22:18:00.935 18887-18887/? E/Fabric﹕ .
02-08 22:18:00.935 18887-18887/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.android.staging, PID: 18887
java.lang.RuntimeException: Unable to create application com.example.android.App: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: com.crashlytics.android.CrashlyticsMissingDependencyException:
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's organization.
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4734)
at android.app.ActivityThread.access00(ActivityThread.java:171)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1357)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:157)
at android.app.ActivityThread.main(ActivityThread.java:5506)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
at dalvik.system.NativeStart.main(Native Method)
390   15  

15 ответов:

единственный обходной путь на данный момент, если вам действительно нужно опубликовать свое приложение (как и я), а затем изменить динамические номера версий на статические:

[...]

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

[...]

compile('com.crashlytics.sdk.android:crashlytics:2.2.0@aar') {
        transitive = true
}

[...]

EDIT:

была опубликована обновленная версия fabric sdk, вы можете получить ее, изменив строку на эту:

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

Я добавил следующие коды, прежде чем я фактически установил Fabric/Crashlytics:

debug {
    ext.enableCrashlytics = false
}

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

Я это прокомментировал в gradle

apply plugin: 'io.fabric'

нужно раскомментировать его

или если у вас его нет, добавьте его!

похоже на указание версии плагина как:

classpath 'io.fabric.tools:gradle:1.+'

поднимает 1.15.1, в котором есть проблема.

указание мажора и минора к предыдущему 1.14 кажется стабильной:

classpath 'io.fabric.tools:gradle:1.14.+'

у меня была такая же проблема после обновления плагина. для решения нужно удалить из AndroidManifest.XML-код:

<meta-data
    android:name="com.crashlytics.ApiKey"
    android:value="API_SECRET_KEY" />

и добавить к ткани.свойства:

apiSecret=API_SECRET_KEY
apiKey=YOUR_SECRET_KEY

обновление:

Теперь, вы должны использовать:

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

если вы используете функцию отключения во время отладки, как показано

 Crashlytics crashlyticsKit = new Crashlytics.Builder()
            .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
            .build();
    Fabric.with(this, crashlyticsKit);

что происходит, когда вы обновляете версии приложений заключается в том, что

Fabric.with(this, crashlyticsKit); 

превращается в

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

поэтому убедитесь, что, чтобы изменить это Назад в crashlyticskit. Если вы делаете это правильно, и ошибка все еще появляется, то убедитесь, что у вас есть

debug {

      ext.enableCrashlytics = false
 }

под android {buildtypes{}}

Майк из Crashlytics здесь. Мы отправили обновленную версию - 1.15.2 - ранее сегодня, которая включает исправление для этого поведения. Если вы запустите:

./gradlew assemble --refresh-dependencies

что будет тянуть в последней версии. Вы также можете увидеть больше подробности об исправлении здесь.

для меня это было из-за dataBinding = true. Обновление плагина fabric gradle до 1.21.0 Исправлена проблема: https://twittercommunity.com/t/fabric-gradle-plugin-1-21-0-add-support-for-android-databinding-true/57474

исправить для меня От чиновника источник

отключить Crashlytics для отладки сборки

Если вам не нужны отчеты о сбоях Crashlytics или бета-дистрибутив для отладочных сборок, вы можете безопасно ускорить свои отладочные сборки, полностью отключив плагин с помощью этих двух шагов:

во-первых, добавьте это в сборку вашего приложения.Gradle в:

android {
    buildTypes {
        debug {
          // Disable fabric build ID generation for debug builds
          ext.enableCrashlytics = false
          ...

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

com.crashlytics.android.core.CrashlyticsMissingDependencyException:

This app relies on Crashlytics. Please sign up for access at https://fabric.io/sign_up`

вы можете отключить комплект во время выполнения для отладочных сборок только со следующим кодом:

// 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);

проблема также возникает, если вы случайно включаете Crashlytics BuildConfig - очень легко сделать с Android Studio/IntelliJ auto-imports.

я импортировал

import com.crashlytics.android.core.BuildConfig;

вместо моего собственного

import <package_name>.BuildConfig;

в моем случае я использовал fabric в модуле "CommonLib", который был добавлен в качестве зависимости во всех других модулях (включая приложение). Итак, я добавил apply plugin: 'io.fabric' после buildscript {} блок. Итак, я разместил два плагина вместе:

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

и проблема решена!

в случае, если это поможет кому-то еще, у меня была аналогичная проблема при обновлении Crashlytics до Fabric. В моем случае плагин оставил 2 строки из Crashlytics, которые мне нужно было вручную удалить, прежде чем он будет работать.

в файле gradle, под зависимостями buildscript, мне пришлось вручную удалить:

classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.16.0'

кроме того, в разделе зависимости мне пришлось вручную удалить:

compile 'com.crashlytics.android:crashlytics:1.1.13'

может быть, я опоздал с ответом. Но это может произойти еще по одной причине помимо всех вышеперечисленных ответов

Если вы пропустите, чтобы добавить

apply plugin:'io.fabric'

Это может показаться странным, но это приведет к той же проблеме

Это по умолчанию добавляется fabric, когда мы регистрируемся и добавляем код из окна Fabric с помощью IDE, но случайно его можно удалить.

добавьте apply plugin: 'io.fabric' в проект приложения build.gradle. В моем случае, у меня был общий build.gradle С apply plugin: 'io.fabric'. Перемещение его в проект приложения решило проблему.

проверьте, отключен ли crashlytics в сборке.gradle file

    debug {
        ext.enableCrashlytics = false
    }

вместо того, чтобы использовать

    debug {
        ext.enableCrashlytics = true
    }

Comments

    Ничего не найдено.