ver hacer depurar debug como codigo java android crashlytics

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:

  1. 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]
  2. Agregue esta línea en su archivo AndroidManifest.xml dentro de <application> :

    <meta-data android:name="io.fabric.ApiKey" android:value="<FABRIC_API_KEY>" />

  3. Agregue esta línea en el archivo de recursos Resources/values/Strings.xml :

    <string name="com.crashlytics.android.build_id">15</string>

  4. Agregue esta línea en MainApplication.cs o YourActivity.cs en OnCreate() :

    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/…