Ich benutze seit einiger Zeit die neuesten Crashlytics (Fabric-Integration). Vor kurzem trat jedoch der folgende Absturzfehler aufgrund fehlender Abhängigkeit auf, obwohl ich an den Crashlytics-Konfigurationen nichts geändert habe.
irgendeine Idee?
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.access$1600(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)
android
crashlytics
twitter-fabric
Xialin
quelle
quelle
Antworten:
Die einzige Problemumgehung für den Moment, wenn Sie Ihre App wirklich veröffentlichen müssen (wie ich), besteht darin, die dynamischen Versionsnummern in statische zu ändern:
BEARBEITEN:
Eine aktualisierte Version des Fabric SDK wurde veröffentlicht. Sie können es erhalten, indem Sie die Zeile wie folgt ändern:
quelle
https://maven.fabric.io/repo
undhttps://maven.fabric.io/public
Ich habe die folgenden Codes hinzugefügt, bevor ich Fabric / Crashlytics installiert habe:
Das Entfernen des Problems vor dem ersten Durchlauf mit Crashlytics löste das Problem. Das Problem tritt nach dem ersten Durchlauf nicht mehr auf.
quelle
com.crashlytics.sdk.android:crashlytics:2.6.8@aar
Ich hatte dies in gradle auskommentiert
musste es auskommentieren
Oder wenn Sie es nicht haben, fügen Sie es hinzu!
quelle
Scheint so, als würde man die Plugin-Version wie folgt angeben:
nimmt 1.15.1 auf, was das Problem hat.
Die Angabe von Dur und Moll gegenüber früheren
1.14
scheint stabil zu sein:quelle
Ich hatte das gleiche Problem nach dem Update-Plugin. Um das Problem zu lösen, entfernen Sie es aus AndroidManifest.xml:
und zu Fabric.Eigenschaften hinzufügen:
AKTUALISIEREN:
Jetzt müssen Sie verwenden:
quelle
<meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY"/>
in der AM-Datei. Der Name wurde von "com.crashlytics.ApiKey" in "io.fabric.ApiKey" geändert.Wenn Sie die Deaktivierungsfunktion während des Debuggens wie gezeigt verwenden
Was passiert, wenn Sie die Version von Crashlytics aktualisieren, ist das
wird zu gedreht
Stellen Sie also sicher, dass Sie dies wieder in Crashlyticskit ändern. Wenn Sie dies richtig machen und der Fehler weiterhin auftritt, stellen Sie sicher, dass Sie dies getan haben
unter android {buildtypes {}}
quelle
Mike von Crashlytics hier. Wir haben heute eine aktualisierte Version - 1.15.2 - ausgeliefert, die eine Korrektur für dieses Verhalten enthält. Wenn du läufst:
das wird in der neuesten Version ziehen. Weitere Details zum Fix finden Sie hier.
quelle
Fix für mich Aus offizieller Quelle
Deaktivieren Sie Crashlytics für Debug-Builds
Wenn Sie für Debug-Builds keine Crashlytics-Crash-Reporting oder Beta-Distribution benötigen, können Sie Ihre Debug-Builds sicher beschleunigen, indem Sie das Plugin mit den folgenden beiden Schritten vollständig deaktivieren:
Fügen Sie dies zunächst dem build.gradle Ihrer App hinzu:
Deaktivieren Sie anschließend das Crashlytics-Kit zur Laufzeit. Andernfalls gibt das Crashlytics-Kit den folgenden Fehler aus:
Sie können das Kit zur Laufzeit für Debug-Builds nur mit dem folgenden Code deaktivieren:
quelle
Das Problem tritt auch auf, wenn Sie versehentlich die Crashlytics BuildConfig einbinden - sehr einfach mit automatischen Importen von Android Studio / IntelliJ.
Ich hatte importiert
import com.crashlytics.android.core.BuildConfig;
Anstelle meiner eigenen
import <package_name>.BuildConfig;
quelle
Für mich war es wegen
dataBinding = true
. Durch das Aktualisieren des Fabric Gradle-Plugins auf 1.21.0 wurde das Problem behoben: https://twittercommunity.com/t/fabric-gradle-plugin-1-21-0-add-support-for-android-databinding-true/57474quelle
In meinem Fall habe ich Fabric in einem "CommonLib" -Modul verwendet, das in allen anderen Modulen (einschließlich App) als Abhängigkeit hinzugefügt wurde. Also hatte ich
apply plugin: 'io.fabric'
nachbuildscript {}
Block hinzugefügt . Also habe ich zwei Plugins zusammengestellt:Und das Problem wurde gelöst!
quelle
Stellen Sie sicher, dass Sie
apply plugin: 'io.fabric'
Ihrem Anwendungsprojekt hinzufügenbuild.gradle
. In meinem Fall hatte ich eine Gemeinsamkeitbuild.gradle
mitapply plugin: 'io.fabric'
. Das Verschieben in ein Anwendungsprojekt löste das Problem.quelle
Falls dies jemand anderem hilft, hatte ich ein ähnliches Problem beim Upgrade von Crashlytics auf Fabric. In meinem Fall hat das Plugin 2 Zeilen von Crashlytics hinterlassen, die ich manuell entfernen musste, bevor es funktionieren würde.
In der Gradle-Datei musste ich unter Buildscript-Abhängigkeiten manuell entfernen:
Außerdem musste ich unter Abhängigkeiten manuell entfernen:
quelle
Überprüfen Sie, ob Crashlytics in der Datei build.gradle deaktiviert ist
Verwenden Sie stattdessen
quelle
Vielleicht bin ich zu spät, um zu antworten. Dies kann jedoch aus einem weiteren Grund geschehen, abgesehen von allen oben genannten Antworten
Wenn Sie nicht hinzufügen möchten
Dies mag seltsam erscheinen, führt jedoch zu demselben Problem
Dies wird standardmäßig von Fabric hinzugefügt, wenn wir uns anmelden und Code aus dem Fabric-Fenster mit IDE hinzufügen. Er kann jedoch versehentlich gelöscht werden.
quelle
Entfernen des Anwendungssymbols behoben Crashylitics, was?
Ich habe alles basierend auf dem Onboarding-Tutorial, unter Verwendung der neuesten Versionen usw. erledigen lassen.
Ich habe nur eine Stunde damit verbracht, das herauszufinden. Es stellte sich heraus, dass jemand dachte, es sei eine gute Idee, den Paketnamen des Anwendungssymbols zu lesen, anstatt
context.packageName
die Ressourcen der Anwendung in einem bestimmten Kontext abzurufen. Es wird in dieser Methode gemacht:io.fabric.sdk.android.services.common.CommonUtils#getResourcePackageName
Dies geht offensichtlich in die Luft, wenn Sie zufällig ein Symbol verwenden, das sich nicht in der APK befindet, zum Beispiel :
android:icon="@android:drawable/sym_def_app_icon"
. Es war damals wahrscheinlich eine gute Idee, sich zu fragen, welchen seltsamen Fehler sie zu umgehen versuchten?!quelle
Fügen Sie das hinzu
AndroidManifest.xml
.quelle