Saya telah menggunakan Crashlytics (integrasi Fabric) terbaru untuk sementara waktu. Namun baru-baru ini saya mengalami error error berikut karena dependensi yang hilang meskipun saya tidak mengubah apa pun tentang konfigurasi Crashlytics.
ada ide?
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
sumber
sumber
Jawaban:
Satu-satunya solusi untuk saat ini, jika Anda benar-benar perlu memublikasikan aplikasi Anda (seperti saya), adalah mengubah nomor versi dinamis menjadi statis:
EDIT:
versi terbaru dari Fabric SDK telah diterbitkan; Anda bisa mendapatkannya dengan mengubah baris menjadi ini:
sumber
https://maven.fabric.io/repo
danhttps://maven.fabric.io/public
Saya telah menambahkan kode berikut sebelum saya benar-benar menginstal Fabric / Crashlytics:
Menghapusnya sebelum menjalankan pertama dengan Crashlytics memecahkan masalah. Masalah tidak lagi terjadi setelah dijalankan pertama kali.
sumber
com.crashlytics.sdk.android:crashlytics:2.6.8@aar
Saya memiliki komentar ini di gradle
perlu untuk menghapusnya
Atau jika Anda tidak memilikinya, tambahkan!
sumber
Sepertinya menentukan versi plugin sebagai:
mengambil 1.15.1, yang bermasalah.
Menentukan mayor dan minor ke sebelumnya
1.14
tampaknya stabil:sumber
Saya memiliki masalah yang sama setelah memperbarui plugin. untuk mengatasi kebutuhan, hapus dari AndroidManifest.xml:
dan tambahkan ke fabric.properties:
MEMPERBARUI:
Sekarang, Anda harus menggunakan:
sumber
<meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY"/>
dalam file AM. Nama diubah dari "com.crashlytics.ApiKey" menjadi "io.fabric.ApiKey".Jika Anda menggunakan fungsi nonaktifkan selama debug seperti yang ditunjukkan
Apa yang terjadi ketika Anda memperbarui versi crashlytics adalah itu
diubah menjadi
Jadi pastikan untuk mengubahnya kembali ke crashlyticskit. Jika Anda melakukan ini dengan benar dan kesalahan masih muncul, pastikan Anda sudah melakukannya
di bawah android {buildtypes {}}
sumber
Mike dari Crashlytics di sini. Kami mengirimkan versi yang diperbarui - 1.15.2 - sebelumnya hari ini yang menyertakan perbaikan untuk perilaku ini. Jika Anda menjalankan:
yang akan menarik versi terbaru. Anda juga dapat melihat detail lebih lanjut tentang perbaikannya di sini.
sumber
Perbaiki untuk saya Dari sumber resmi
Nonaktifkan Crashlytics untuk Debug Builds
Jika Anda tidak memerlukan Crashlytics crash reporting atau distribusi beta untuk debug build, Anda dapat mempercepat debug-build dengan aman dengan menonaktifkan plugin sepenuhnya dengan dua langkah berikut:
Pertama, tambahkan ini ke build.gradle aplikasi Anda:
Selanjutnya, nonaktifkan kit Crashlytics saat runtime. Jika tidak, kit Crashlytics akan menampilkan error berikut:
Anda dapat menonaktifkan kit pada waktu proses untuk build debug hanya dengan kode berikut:
sumber
Masalah ini juga terjadi jika Anda tidak sengaja menyertakan Crashlytics BuildConfig - sangat mudah dilakukan dengan impor otomatis Android Studio / IntelliJ.
Saya telah mengimpor
import com.crashlytics.android.core.BuildConfig;
Bukan milikku sendiri
import <package_name>.BuildConfig;
sumber
Bagi saya itu karena
dataBinding = true
. Mengupgrade plugin fabric gradle ke 1.21.0 memperbaiki masalah: https://twittercommunity.com/t/fabric-gradle-plugin-1-21-0-add-support-for-android-databinding-true/57474sumber
Dalam kasus saya, saya menggunakan fabric dalam modul "CommonLib" yang ditambahkan sebagai dependensi di semua modul lain (termasuk aplikasi). Jadi, saya menambahkan
apply plugin: 'io.fabric'
setelahbuildscript {}
blok. Jadi, saya menempatkan dua plugin bersama:Dan masalah terpecahkan!
sumber
Pastikan untuk menambahkan
apply plugin: 'io.fabric'
proyek aplikasi Andabuild.gradle
. Dalam kasus saya, saya memiliki kesamaanbuild.gradle
denganapply plugin: 'io.fabric'
. Memindahkannya ke proyek aplikasi memecahkan masalah.sumber
Jika ini membantu orang lain, saya mengalami masalah serupa saat mengupgrade Crashlytics ke Fabric. Dalam kasus saya, plugin meninggalkan 2 baris dari Crashlytics yang perlu saya hapus secara manual sebelum berfungsi.
Di file gradle, di bawah dependensi buildscript, saya harus menghapus secara manual:
Juga, di bawah ketergantungan, saya harus menghapus secara manual:
sumber
Periksa apakah crashlytics dinonaktifkan dalam file build.gradle
Sebagai gantinya gunakan
sumber
Mungkin saya terlambat membalas. Tetapi ini bisa terjadi dari satu alasan lagi selain dari semua jawaban di atas
Jika Anda ketinggalan menambahkan
Ini mungkin tampak aneh tetapi ini akan menghasilkan masalah yang sama
Ini secara default ditambahkan oleh fabric ketika kita mendaftar dan menambahkan kode dari jendela Fabric Menggunakan IDE tetapi secara tidak sengaja dapat dihapus.
sumber
Menghapus ikon aplikasi tetap Crashylitics, whaaat?
Saya menyelesaikan semuanya berdasarkan tutorial orientasi, menggunakan versi terbaru, dll.
Hanya membuang waktu satu jam untuk mencoba memikirkan hal ini. Ternyata seseorang berpikir itu ide yang baik untuk membaca nama paket dari ikon aplikasi daripada
context.packageName
mendapatkan sumber daya aplikasi mengingat konteks. Itu dilakukan dengan metode ini:io.fabric.sdk.android.services.common.CommonUtils#getResourcePackageName
Hal ini jelas pukulan jika Anda kebetulan menggunakan sebuah ikon yang tidak dalam APK, misalnya:
android:icon="@android:drawable/sym_def_app_icon"
. Mungkin itu ide yang bagus pada saat itu, bertanya-tanya bug aneh apa yang mereka coba atasi ?!sumber
Tambahkan itu ke dalam
AndroidManifest.xml
.sumber