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