2017-05-05 32 views
1
調試禁用Crashlytics

我跟隨的正是這種步驟在Android 2.3.2工作室在我的調試禁用Crashlytics建立不能在Android

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

我的相關應用程序/的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

正是@DaveThomas –

+1

邁克從織物這裏。你在這個流程中看到crashlytics-build.properties文件被創建了嗎?你可以在應用程序的onCreate()中共享更多應用程序的build.gradle和Fabric的init嗎? –

回答

0

確保喲您導入了特定於您的應用程序包名稱的BuildConfig。 我想到的一種可能性是,也許你意外地爲你的某個庫導入了BuildConfig

所以,當這行代碼運行:

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

它實際上是指向不同的BuildConfig,因爲有在項目中的多個和BuildConfig.DEBUG最終是錯誤的。

這只是一個猜測,但可能會不小心出錯。