2015-02-24 15 views
9

Niedawno uaktualniliśmy konto Crashlytics naszej organizacji do Fabric i próbuję zastąpić stary zestaw SDK Crashlytics nowym pakietem Fabric SDK w naszych istniejących aplikacjach. Śledziłem the migration instructions i było to w dużej mierze bezbolesne, z tym że teraz otrzymuję błąd kompilacji podczas próby kompilacji. Linia na pytanie, które jest przyczyną błędu jest wezwanie bootstrap:Błąd kompilacji po migracji z pakietu SDK Crashlytics do Fabric

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

Błąd, który jest zwracane jest:

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) 

Najwyraźniej new Crashlytics() nie jest uznawany za ważny argument dla metody with(Context,Kit...) z jakiegoś powodu.

Aby wykluczyć coś konkretnego związanego z naturą vararg wywołania metody, próbowałem także z więcej niż jednym zestawem (np. Fabric.with(this, new Crashlytics(), new MoPub())) i dokładnie ten sam błąd był nadal zwracany.

W końcu próbowałem przenieść wywołanie do metody onCreate() mojej podklasy aplikacji, co też nie pomogło.


odpowiednich sekcjach z 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:[email protected]') { 
    transitive = true; 
    } 
} 

Ja również sprawdzić, czy wtyczka jest prawidłowo zainstalowana Fabric i pracy, i że stary plugin Crashlytics nie jest już zainstalowana:

Plugins list shown Fabric plugin present, and Crashlytics plugin not present Fabric plugin running

Odpowiedz

25

Okazuje się, że stary JAR Crashlytics wciąż ukrywał się w moimW jakiś sposób ten folder i po jego usunięciu ten błąd już nie występuje.

Czuję się trochę tępy, ale zostawię to, aby pomóc przyszłym pracownikom Google, którzy mają ten sam problem. :)

+9

Kogut czy nie uratowałeś mi czasu na zdrowie – tmho

+0

Nie mam już słoika w mojej libacji, ale wciąż dostaję twój błąd :( – Jacksonkr

+2

Dzięki za wskazanie mi we właściwym kierunku. Dla mnie była to nadmiarowa zależność narzędzie do migracji nie zniknęło po dodaniu znaku aar. Jeśli masz: skompiluj "com.crashlytics.android:crashlytics:+" w swoich zależnościach oprócz nowych, usuń je. – dominicoder

0

Znalazłem dokładnie to, co @TreKing wspomniał w swoim komentarzu. Aktualizacja/migracja nie pozwoliła usunąć poprzedniej zależności z pliku app/build.gradle. Poszukaj starego wpisu, takiego jak compile 'com.crashlytics.android:crashlytics:1.1.13', i usuń go.

Powiązane problemy