hacer - depurar codigo en java
Error de Crashlytics-Esta aplicación se basa en Crashlytics. Por favor regístrese para acceder (6)
Tengo dos versiones de compilación en gradle, pero por alguna razón, cada vez que cambio el siguiente indicador a falso, aparece el mensaje de error titulado:
ext.enableCrashlytics = false
el error en sí está completo a continuación:
Process: com.mobile.myapp.staging, PID: 5439
java.lang.RuntimeException: Unable to create application com.mobile.myapp.UI.myappApplication: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: 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:4710)
at android.app.ActivityThread.-wrap1(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1405)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: io.fabric.sdk.android.services.concurrency.UnmetDependencyException: 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 com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:234)
at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:207)
at io.fabric.sdk.android.InitializationTask.onPreExecute(InitializationTask.java:44)
at io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611)
at io.fabric.sdk.android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.java:43)
at io.fabric.sdk.android.Kit.initialize(Kit.java:69)
at io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:440)
at io.fabric.sdk.android.Fabric.init(Fabric.java:384)
at io.fabric.sdk.android.Fabric.setFabric(Fabric.java:342)
at io.fabric.sdk.android.Fabric.with(Fabric.java:313)
at com.mobile.myapp.UI.base.BaseApplication.setupExceptionHandling(BaseApplication.java:51)
at com.mobile.myapp.UI.myappApplication.onCreate(myappApplication.java:45)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1013)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4707)
Y así es como inicializo crashlytics en mi subclase de aplicación:
Fabric.with(this, new Crashlytics());
Lo que estoy tratando de hacer es tener control sobre si un crashlytics puede funcionar o no por sabor. digamos que quiero que flavor1 no ejecute crashlytics, pensé que podría usar esa marca de gradle y establecerla en falsa. Me estoy perdiendo de algo ?
Para Android de Xamarin
Debe tener lo siguiente para no recibir el error anterior:
- Incluye los paquetes de NuGet:
- Xamarin.Android.Crashlytics [por Microsoft]
- Xamarin.Android.Crashlytics.Core [por Microsoft]
- Xamarin.Android.Crashlytics.Beta [por Microsoft]
- Xamarin.Android.Crashlytics.respuestas [por Microsoft]
Agregue esta línea en su archivo
AndroidManifest.xml
dentro de<application>
:<meta-data android:name="io.fabric.ApiKey" android:value="<FABRIC_API_KEY>" />
(Puede obtener la clave cuando realice la incorporación en https://fabric.io/onboard )
o vaya a https://fabric.io/kits/ios/crashlytics/install después de https://fabric.io/kits/ios/crashlytics/install sesión, debe ver su clave allí en el tutorial.
Agregue esta línea en el archivo de recursos
Resources/values/Strings.xml
:<string name="com.crashlytics.android.build_id">15</string>
Agregue esta línea en
MainApplication.cs
oYourActivity.cs
enOnCreate()
:Fabric.Fabric.With(this, new Crashlytics.Crashlytics());
Su aplicación debe construirse y ejecutarse más allá de la línea de inicialización sin problemas. El único problema que tengo con él es el hecho de que hay un lugar más en el que necesita actualizar la versión de compilación de su aplicación cada vez que se publique.
EDITAR:
Hasta donde estoy experimentando, se requiere el único valor pero no se usa en absoluto. En realidad, no es necesario aumentar el número de compilación en Strings.xml
, ya que el número de compilación se obtiene de la aplicación automáticamente, por lo que debería dejar el valor en: <string name="com.crashlytics.android.build_id">1</string>
Si lo experimenta de manera diferente para Xamarin, por favor comente a continuación.
Adición a la respuesta de Todd Burner.
Tenga cuidado con BuildConfig.DEBUG
. IDE puede auto-importarlo desde
com.crashlytics.android.BuildConfig (= false)
en lugar de su configuración de la aplicación
${app_package}.BuildConfig
ACTUALIZAR
Proporcionando un ejemplo en la solicitud de j2emanue
...
import com.fiot.ot.BuildConfig <- should be
import com.crashlytics.android.BuildConfig <- my IDE automatically imported
fun initFabric(context: Context) {
val core = CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build()
val kit = Crashlytics.Builder().core(core).build()
Fabric.with(context, kit)
}
Donde com.fiot.ot
nombre del paquete de mi aplicación
Asegúrate de agregar
app.gradle
apply plugin: ''io.fabric''
tambien tengo
classpath ''io.fabric.tools:gradle:1.26.1''
en el
dependencias del proyecto gradle
y agregue la api de Crashlytics en las cadenas, regístrese en el sitio de Crashlytics
Cada vez que me pongo
ext.enableCrashlytics = false
mi aplicación falla
io.fabric.sdk.android.services.concurrency.UnmetDependencyException
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.
Lo que parece funcionar para mí es que tengo que deshabilitar la inicialización automática de Crashlytics agregando esta línea a AndroidManifest.xml
<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" />
Luego inicializo manualmente Crashlytics en el método onCreate () de mi subclase de aplicación, uso BuildConfig.DEBUG para decidir si deshabilitar CrashlyticsCore y llamo a Fabric.with (). De hecho, ya no configuro
ext.enableCrashlytics = false
en absoluto. Todo parece funcionar para mí.
Tal vez falte aplicar el plugin de tela
¡ app/build.gradle
esta línea en la parte superior del archivo app/build.gradle
resolví mis problemas!
aplicar plugin: ''io.fabric''
Todd de la tela. Obtendrá este error a menos que también deshabilite Fabric en tiempo de ejecución.
// Set up Crashlytics, disabled for debug builds
Crashlytics crashlyticsKit = new Crashlytics.Builder()
.core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
.build();
// Initialize Fabric with the debug-disabled crashlytics.
Fabric.with(this, crashlyticsKit);
Consulte este enlace para obtener más detalles: docs.fabric.io/android/crashlytics/…