2016-06-24 1 views
0

앱을 개발하는 기기에서 Crashlytics 및 Answers를 사용하지 않습니다. 예 : 부착 된 휴대 전화 또는 가상 장치. 그것은 일반 자바 경우 자바 속성을 설정합니다. 그러나 Android Studio는 그러한 기능을 놓치고 있습니다. 거기에 몇 가지 플래그를 설치할 수 있지만 그들은 not documented입니다. 디버거에서 Android 앱을 실행하는 것을 감지하는 방법은 무엇입니까?

나는 내가 다음과 같은 조건

Settings.System.getString(getContentResolver(), "firebase.test.lab") != null 

와 중포 기지 내에서 실행 감지 할 수 있지만 안드로이드 스튜디오에서 설정하는 방법을 아무 생각이 없다는 것을 발견했다.

업데이트 :이 같은 런타임

android { 
    buildTypes { 
     debug { 
      // Disable fabric build ID generation for debug builds 
      ext.enableCrashlytics = false 
      ... 

그리고 초기화 crashlytycs :

가 최대의 답변에 따라

현재 코드는 당신은 디버그 Gradle을에서 crashlytics을 해제 할 수 있습니다

insideFirebase = Settings.System.getString(getContentResolver(), "firebase.test.lab") != null; 
if (!insideFirebase) { 
    CrashlyticsCore crashlyticsCore = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build(); 
    Crashlytics crashlyticsKit = new Crashlytics.Builder().core(crashlyticsCore).build(); 
    if (BuildConfig.DEBUG) { 
     Fabric.with(this, crashlyticsKit); 
    } else { 
     Fabric.with(this, new Answers(), crashlyticsKit); 
    } 
} 
+0

관련 질문 : https://twittercommunity.com/t/can-i-di sable-answers-on-my-app-while- 탈퇴 - 충돌보고 사용/55249/22, http://stackoverflow.com/questions/31964038/how-to-disable-crashlytics-answers –

답변

2

입니다 :

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

Fabric.with(this, crashlyticsKit); 

여기에 더 많은 정보가 documentation

P.S. 응용 프로그램을 실행하는 동안

productFlavors { 
     Dev { 
      buildConfigField 'Boolean', 'enableCrashlytics', 'false' 
     } 

을하고 다음을 확인하십시오 :

if (BuildConfig.enableCrashlytics == true) {} 

UPD : 당신은 또한 Gradle을 제품의 맛 빌드 형식에 대한 플래그/변수를 제공 할 수 우리가 사용할

CrashlyticsCore core = new CrashlyticsCore.Builder().disabled(BuildConfig.DEBUG).build(); 
Fabric.with(this, new Crashlytics.Builder().core(core).build()); 

대신 Fabric.with(this, crashlyticsKit);

+0

암호? if (! BuildConfig.DEBUG) {Fabric.with (this, 새 Answers(), 새 Crashlytics())} –

+0

업데이트 된 섹션보기. 이것은 crashlytics 2.3+를위한 것입니다. 이러한 초기화를 사용하면 충돌 해결에 대한 추가 검사가 필요하지 않습니다. 그것은 당신이 crashlytics 메서드를 호출 할 때 디버그에서 응용 프로그램을 크래시하지 않습니다. –

+0

내 이전의 주석은 작동하지 않았다. java.lang.IllegalStateException으로 실패했다 : com.crashlytics.android.answers.Answers.getInstance에서 singleton()을 사용하기 전에 패브릭을 초기화해야한다. Answers.java:32). 이제 당신의 솔루션을 시도해보십시오. –

관련 문제