2015-02-24 11 views
9

Kürzlich haben wir das Crashlytics-Konto unserer Organisation auf Fabric aktualisiert und ich versuche, das alte Crashlytics SDK durch das neue Fabric SDK in unseren bestehenden Apps zu ersetzen. Ich habe the migration instructions gefolgt, und es war weitgehend schmerzlos, außer dass ich jetzt einen Buildfehler erhalte, wenn ich versuche, zu kompilieren. Die Linie in Frage, die den Fehler verursacht ist der Bootstrap-Aufruf:Erstellungsfehler nach der Migration von Crashlytics SDK zu Fabric

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

Der Fehler, der wird ist zurückgegeben wird:

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) 

Offensichtlich ist new Crashlytics() nicht als gültiges Argument für die with(Context,Kit...) Methode erkannt aus irgendeinem Grund.

Um etwas auszuschließen, das speziell auf die Vararg-Natur des Methodenaufrufs bezogen ist, habe ich es auch mit mehr als einem Kit versucht (z. B. Fabric.with(this, new Crashlytics(), new MoPub())) und der exakt gleiche Fehler wurde immer noch zurückgegeben.

Schließlich habe ich versucht, den Aufruf an die onCreate() Methode meiner Application-Unterklasse zu verschieben, und das hat auch nicht geholfen.


Relevante Abschnitte von 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; 
    } 
} 

Ich habe auch festgestellt, dass die Fabric-Plugin richtig installiert ist und funktioniert, und dass das alte Crashlytics Plugin ist nicht mehr installiert:

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

Antwort

25

Es stellt sich heraus, dass die alte Crashlytics JAR immer noch in meinemversteckteOrdner irgendwie, und nach dem Entfernen, dieser Fehler nicht mehr besteht.

Ich fühle mich ein wenig bonehead, aber ich werde dies überlassen, um zukünftigen Googlern zu helfen, die auf das gleiche Problem stoßen. :)

+9

bonehead oder nicht du hast meine Zeit cheers – tmho

+0

Ich habe das Glas in meiner Bibliothek nicht mehr, aber ich bekomme immer noch Ihren Fehler :( – Jacksonkr

+2

Danke für die Ausrichtung in die richtige Richtung. Für mich war es eine redundante Abhängigkeit dass das Migrationstool nach dem Hinzufügen des aar nicht entfernt wurde Wenn Sie also: in Ihren Abhängigkeiten 'com.crashlytics.android:crashlytics:+' zusätzlich zu dem neuen kompilieren, entfernen Sie es. – dominicoder

0

Ich fand genau was @TreKing in seinem Kommentar erwähnt. Die Aktualisierung/Migration konnte die vorherige Abhängigkeit von meiner app/build.gradle Datei nicht entfernen. Suchen Sie nach einem alten Eintrag wie compile 'com.crashlytics.android:crashlytics:1.1.13' und entfernen Sie ihn.

Verwandte Themen