无法在Android上禁用Crashlytics进行调试

时间:2017-05-05 21:15:40

标签: android crashlytics twitter-fabric

我在android studio 2.3.2上完全按照这个步骤在我的调试版本上禁用了Crashlytics

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

我的相关app / build.gradle

 buildTypes {
        debug {
            applicationIdSuffix '.debug'
            versionNameSuffix '-DEBUG'
            // Disable fabric build ID generation for debug builds
            ext.enableCrashlytics = false
            testCoverageEnabled = false
            debuggable true
       }
  }

我得到了这个堆栈跟踪

Error reading Beta build properties                                                                     java.io.FileNotFoundException: crashlytics-build.properties
                                                                     at android.content.res.AssetManager.openAsset(Native Method)
                                                                     at android.content.res.AssetManager.open(AssetManager.java:347)
                                                                     at android.content.res.AssetManager.open(AssetManager.java:321)
                                                                     at com.crashlytics.android.beta.Beta.loadBuildProperties(Beta.java:172)
                                                                     at com.crashlytics.android.beta.Beta.doInBackground(Beta.java:75)
                                                                     at com.crashlytics.android.beta.Beta.doInBackground(Beta.java:30)
                                                                     at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:63)
                                                                     at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:28)
                                                                     at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(AsyncTask.java:311)
                                                                     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428)
                                                                     at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
                                                                     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
                                                                     at java.lang.Thread.run(Thread.java:761)

1 个答案:

答案 0 :(得分:0)

确保您已导入特定于应用程序包名称的BuildConfig。 我想到的一种可能性是,你可能偶然为你的某个库导入了BuildConfig吗?

所以当这行代码运行时:

Crashlytics crashlyticsKit = new Crashlytics.Builder()
                .core(new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build())
                .build();

它实际上指向不同的BuildConfig,因为项目中有多个,BuildConfig.DEBUG最终为假。

这只是猜测,但可能会意外出错。