Crashlytics error - This app relies on Crashlytics. Please sign up for access

匿名 (未验证) 提交于 2019-12-03 02:24:01

问题:

I have two build flavors in gradle but for some reason whenever i change the following flag to false i get the titled error message:

ext.enableCrashlytics = false 

the error itself complete is below:

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) 

And this is how I initialize crashlytics in my Application subclass:

Fabric.with(this, new Crashlytics()); 

what i am trying to do is have control over whether or not a crashlytics can run or not per flavor. lets say i want flavor1 not to run crashlytics i thought i could use that gradle flag and set it to false. am i missing something ?

回答1:

Addition to answer of Todd Burner

Be carefull with BuildConfig.DEBUG. IDE can auto-import it from

com.crashlytics.android.BuildConfig (= false) 

instead of your app config

${app_package}.BuildConfig 

UPDATE

Providing an example on the request of 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)     } 

Where com.fiot.ot package name of my app



回答2:

Whenever I set

ext.enableCrashlytics = false 

my app crashes with

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. 

What seems to work for me is that I have to disable automatic initialization of Crashlytics by adding this line to AndroidManifest.xml

<meta-data android:name="firebase_crashlytics_collection_enabled" android:value="false" /> 

Then I manually initialize Crashlytics in the onCreate() method of my Application subclass, use BuildConfig.DEBUG to decide whether to disable CrashlyticsCore, and call Fabric.with(). In fact, I no longer set

ext.enableCrashlytics = false 

at all. It all seems to work to me.



回答3:

Todd from Fabric. You will get this error unless you also disable Fabric at run time.

    // 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); 

Check out this link for more details: https://docs.fabric.io/android/crashlytics/build-tools.html#disable-crashlytics-for-debug-builds



易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!