Crashlytics错误 - 此应用程序依赖于Crashlytics。请注册访问

问题描述 投票:31回答:7

我在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。我错过了什么吗?

java android crashlytics
7个回答
28
投票

除了回答Todd Burner

小心qazxsw poi。 IDE可以自动导入它

BuildConfig.DEBUG

而不是你的应用程序配置

com.crashlytics.android.BuildConfig (= false)

UPDATE

提供j2emanue请求的示例

${app_package}.BuildConfig

哪里的 ... 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) } 包我的应用程序的名称


70
投票

也许缺少适用插件面料

我在文件com.fiot.ot上添加了这一行解决了我的问题!

申请插件:'io.fabric'


33
投票

每当我设定

app/build.gradle

我的应用程序崩溃了

ext.enableCrashlytics = false

对我来说似乎有用的是我必须通过将此行添加到AndroidManifest.xml来禁用Crashlytics的自动初始化

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.

然后我在我的Application子类的onCreate()方法中手动初始化Crashlytics,使用BuildConfig.DEBUG来决定是否禁用CrashlyticsCore,并调用Fabric.with()。事实上,我不再设定

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

一点都不这似乎对我有用。


12
投票

来自Fabric的Todd。除非您还在运行时禁用了Fabric,否则您将收到此错误。

ext.enableCrashlytics = false

有关更多详细信息,请查看此链接: // 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);


9
投票

确保你加入

app.gradle

https://docs.fabric.io/android/crashlytics/build-tools.html#disable-crashlytics-for-debug-builds

我也有

apply plugin: 'io.fabric'

在里面

项目gradle依赖项

并在字符串中添加Crashlytics api,在classpath 'io.fabric.tools:gradle:1.26.1' 中注册


4
投票

对于Xamarin Android

您需要具备以下内容才能收到上述错误:

  1. 包括NuGet包: Xamarin.Android.Crashlytics [由微软] Xamarin.Android.Crashlytics.Core [由微软] Xamarin.Android.Crashlytics.Beta [由微软] Xamarin.Android.Crashlytics.Answers [由微软]
  2. Crashlytics Site中的AndroidManifest.xml文件中添加以下行: <application> (您可以在<meta-data android:name="io.fabric.ApiKey" android:value="<FABRIC_API_KEY>" />上进行入职时获取密钥) 或者在登录后访问https://fabric.io/onboard,你应该在教程中看到你的密钥。
  3. https://fabric.io/kits/ios/crashlytics/install资源文件中添加以下行: Resources/values/Strings.xml
  4. <string name="com.crashlytics.android.build_id">15</string>中的MainApplication.csYourActivity.cs中添加以下行: OnCreate()

您的应用应该构建并运行在初始化行之外,没有任何问题。我遇到的唯一问题是,每次发布时,还有一个地方需要更新应用的Build版本。


编辑:

就我而言,一个值是必需的,但根本没有使用。你实际上不必增加Fabric.Fabric.With(this, new Crashlytics.Crashlytics());中的内部版本号,它会自动从应用程序中获取内部版本号,所以你应该没关系,只需将值保留为:Strings.xml

如果您对Xamarin有不同的体验,请在下面评论。


0
投票

在我的情况下,这是有效的。

所以,这是顶级项目build.gradle

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

这是app模块的build.gradle

buildscript {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.3'
        classpath 'io.fabric.tools:gradle:1.+'
    }
}
apply plugin: 'java'
allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.fabric.io/public' }
    }
}

最后“干净的构建”,一切都为我而定。

© www.soinside.com 2019 - 2024. All rights reserved.