Tenho usado o Crashlytics (integração com o Fabric) mais recente há algum tempo. Mas, recentemente, encontrei o seguinte erro de travamento devido à ausência de dependência, embora não tenha alterado nada nas configurações do Crashlytics.
qualquer ideia?
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
fonte
fonte
Respostas:
A única solução alternativa por enquanto, se você realmente precisar publicar seu aplicativo (como eu), é alterar os números da versão dinâmica para estática:
EDITAR:
uma versão atualizada do Fabric SDK foi publicada; você pode obtê-lo alterando a linha para esta:
fonte
https://maven.fabric.io/repo
ehttps://maven.fabric.io/public
Eu adicionei os seguintes códigos antes de instalar o Fabric / Crashlytics:
Removê-lo antes da primeira execução com o Crashlytics resolveu o problema. O problema não ocorre mais após a primeira execução.
fonte
com.crashlytics.sdk.android:crashlytics:2.6.8@aar
Eu tinha isso comentado no gradle
precisava descomentar
Ou se você não tem, adicione!
fonte
Parece especificar a versão do plugin como:
pega 1.15.1, que tem o problema.
Especificar maior e menor para anterior
1.14
parece estar estável:fonte
Eu tive o mesmo problema após atualizar o plugin. para resolver a necessidade de remover do AndroidManifest.xml:
e adicione a fabric.properties:
ATUALIZAR:
Agora, você deve usar:
fonte
<meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY"/>
no arquivo AM. O nome foi alterado de "com.crashlytics.ApiKey" para "io.fabric.ApiKey".Se você estiver usando a função desativar durante a depuração, conforme mostrado
O que acontece quando você atualiza a versão do crashlytics é que
é voltado para
Portanto, certifique-se de alterar de volta para crashlyticskit. Se você estiver fazendo isso corretamente e o erro ainda aparecer, certifique-se de ter
sob android {buildtypes {}}
fonte
Mike do Crashlytics aqui. Enviamos uma versão atualizada - 1.15.2 - hoje cedo que inclui uma correção para esse comportamento. Se você executar:
que irá trazer a versão mais recente. Você também pode ver mais detalhes sobre a correção aqui.
fonte
Correção para mim da fonte oficial
Desativar Crashlytics para Debug Builds
Se você não precisa de relatórios de falhas do Crashlytics ou distribuição beta para compilações de depuração, pode acelerar com segurança suas compilações de depuração desativando o plug-in totalmente com estas duas etapas:
Primeiro, adicione ao build.gradle do seu aplicativo:
Em seguida, desative o kit Crashlytics no tempo de execução. Caso contrário, o kit Crashlytics gerará o seguinte erro:
Você pode desativar o kit em tempo de execução para compilações de depuração apenas com o seguinte código:
fonte
O problema também ocorre se você incluir acidentalmente o Crashlytics BuildConfig - muito fácil de fazer com as importações automáticas do Android Studio / IntelliJ.
Eu importei
import com.crashlytics.android.core.BuildConfig;
Em vez do meu
import <package_name>.BuildConfig;
fonte
Para mim foi por causa de
dataBinding = true
. Atualizar o plug-in do Fabric Gradle para 1.21.0 corrigiu o problema: https://twittercommunity.com/t/fabric-gradle-plugin-1-21-0-add-support-for-android-databinding-true/57474fonte
No meu caso, eu estava usando o fabric em um módulo "CommonLib" que foi adicionado como uma dependência em todos os outros módulos (incluindo app). Então, eu adicionei
apply plugin: 'io.fabric'
após obuildscript {}
bloco. Então, coloquei dois plug-ins juntos:E o problema foi resolvido!
fonte
Certifique-se de adicionar
apply plugin: 'io.fabric'
em seu projeto de aplicativobuild.gradle
. No meu caso, eu tinha uma coisa em comumbuild.gradle
comapply plugin: 'io.fabric'
. Movê-lo para o projeto do aplicativo resolveu o problema.fonte
Caso isso ajude outra pessoa, tive um problema semelhante ao atualizar o Crashlytics para o Fabric. No meu caso, o plug-in deixou 2 linhas do Crashlytics que eu precisava remover manualmente antes de funcionar.
No arquivo gradle, nas dependências de buildscript, tive que remover manualmente:
Além disso, nas dependências, tive que remover manualmente:
fonte
Verifique se crashlytics está desabilitado no arquivo build.gradle
Em vez de usar
fonte
Talvez eu esteja atrasado para responder. Mas isso pode acontecer por mais um motivo além de todas as respostas acima
Se você perder adicionar
Isso pode parecer estranho, mas resultará no mesmo problema
Isso é adicionado por padrão pelo fabric quando nos inscrevemos e adicionamos código da janela do Fabric usando IDE, mas acidentalmente pode ser excluído.
fonte
Removendo o ícone do aplicativo corrigiu Crashylitics, o quê?
Eu fiz tudo com base no tutorial de integração, usando as versões mais recentes, etc.
Só perdi uma hora tentando descobrir isso. Acontece que alguém achou uma boa ideia ler o nome do pacote do ícone do aplicativo em vez de
context.packageName
obter os recursos do aplicativo em um contexto. É feito neste método:io.fabric.sdk.android.services.common.CommonUtils#getResourcePackageName
Isto, obviamente, explode, se acontecer de você usar um ícone que não está dentro da APK, por exemplo:
android:icon="@android:drawable/sym_def_app_icon"
. Provavelmente foi uma boa ideia na época, imagine qual bug estranho eles estavam tentando contornar ?!fonte
Adicione isso em
AndroidManifest.xml
.fonte