Ошибка сборки после перехода с Crashlytics SDK на Fabric

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

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

Ошибка, которая возвращается:

Error:(55, 11) error: no suitable method found for with(MyActivity,Crashlytics)
method Fabric.with(Fabric) is not applicable
(actual and formal argument lists differ in length)
method Fabric.with(Context,Kit...) is not applicable
(argument type Crashlytics does not conform to vararg element type Kit)

Очевидно, new Crashlytics() по какой-то причине не распознается как допустимый аргумент для метода with(Context,Kit...).

Просто чтобы исключить что-то, конкретно связанное с vararg-характером вызова метода, я также попробовал его с более чем одним набором (например, Fabric.with(this, new Crashlytics(), new MoPub())), и все равно возвращалась та же самая ошибка.

Наконец, я попытался переместить вызов в метод onCreate() моего подкласса Application, и это тоже не помогло.


Соответствующие разделы из build.gradle:

buildscript {
  repositories {
    maven { url 'https://maven.fabric.io/public' }
  }

  dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
  }
}

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

repositories {
  maven { url 'https://maven.fabric.io/public' }
}

dependencies {
  compile fileTree(dir: 'libs', include: '*.jar')
  ...
  compile('com.crashlytics.sdk.android:crashlytics:2.2.1@aar') {
    transitive = true;
  }
}

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

Список плагинов показан. Плагин Fabric присутствует, а плагин Crashlytics отсутствуетПлагин Fabric запущен


person CloudyMusic    schedule 24.02.2015    source источник


Ответы (2)


Оказывается, старый JAR Crashlytics все еще каким-то образом скрывался в моей папке libs, и после его удаления эта ошибка больше не сохраняется.

Я чувствую себя немного тупоголовым, но я оставлю это, чтобы помочь будущим сотрудникам Google, столкнувшимся с той же проблемой. :)

person CloudyMusic    schedule 24.02.2015
comment
У меня больше нет банки в моей библиотеке, но я все еще получаю вашу ошибку :( - person Jacksonkr; 16.06.2015
comment
Спасибо, что указали мне правильное направление. Для меня это была избыточная зависимость, которую средство миграции не удаляло после добавления файла aar. Итак, если у вас есть: скомпилируйте «com.crashlytics.android:crashlytics:+» в своих зависимостях в дополнение к новому, удалите его. - person dominicoder; 16.06.2015

Я нашел именно то, что @TreKing упомянул в своем комментарии. При обновлении/миграции не удалось удалить предыдущую зависимость из моего файла app/build.gradle. Найдите старую запись, например compile 'com.crashlytics.android:crashlytics:1.1.13', и удалите ее.

person Bill Mote    schedule 01.03.2016