我在gradle中有两个构建版本但由于某种原因,每当我将以下标志更改为false时,我都会收到标题错误消息:
ext.enableCrashlytics = false
错误本身完成如下:
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)
这就是我在Application子类中初始化crashlytics的方法:
Fabric.with(this, new Crashlytics());
我想要做的是控制崩解剂是否可以运行.让我说我想要flavor1不要运行crashlytics我以为我可以使用gradle标志并将其设置为false.我错过了什么吗?
解决方法:
除了回答Todd Burner
小心BuildConfig.DEBUG. IDE可以自动导入它
com.crashlytics.android.BuildConfig (= false)
而不是你的应用程序配置
${app_package}.BuildConfig
UPDATE
提供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)
}
com.fiot.ot我的应用程序的包名称