2017-02-02 2 views
0

Я пытаюсь запустить приложение для Android в режиме отладки, но каждый раз, когда я проверяю BuildConfig.DEBUG, он говорит, что это ложь. Более того, buildconfigField, определенный в моих строках, даже не отображается в BuildConfig.Не удается запустить в режиме отладки

Вот мой Gradle файл:

buildscript { 
repositories { 
    maven { url 'https://maven.fabric.io/public' } 
} 

dependencies { 
    classpath 'io.fabric.tools:gradle:1.22.0' 
} 
} 

apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

repositories { 
    maven { 
     url 'https://maven.fabric.io/public' 
    } 
} 


def versionMajor = 1 

def versionMinor = 2 
def versionPatch = 41 
def versionBuild = 0 // bump for dogfood builds, public betas, etc. 

android { 
    compileOptions.encoding = 'ISO-8859-1' 
    compileSdkVersion 21 
    buildToolsVersion "22.0.1" 
    defaultConfig { 
     applicationId "com.name" 
     minSdkVersion 17 
     targetSdkVersion 21 
     buildConfigField 'Boolean', 'enableCrashlytics', 'false' 
     multiDexEnabled true 
     versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 + versionBuild 
     versionName "${versionMajor}.${versionMinor}.${versionPatch}.${versionBuild}" 
    } 



signingConfigs { 
    release { 
     // release stuff 
    } 
} 

buildTypes { 

    android { 
     release { 
      debuggable false 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
      signingConfig signingConfigs.release 
      buildConfigField 'Boolean', 'enableCrashlytics', 'true' 
     } 

     debug { 
      buildConfigField 'Boolean', 'enableCrashlytics', 'false' 
      debuggable true 
      minifyEnabled false 
      applicationIdSuffix ".debug" 
     } 
    } 
} 

sourceSets { 
    main { 
     res.srcDirs = ['src/main/res', 'src/main/res/xml'] 
    } 
} 

dexOptions { 
    incremental true 
    javaMaxHeapSize "2048M" 
} 

compileOptions { 
    sourceCompatibility JavaVersion.VERSION_1_7 
    targetCompatibility JavaVersion.VERSION_1_7 
} 

lintOptions { 
    checkReleaseBuilds false 
    abortOnError false 
} 
} 

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:appcompat-v7:22.1.1' 
    // ... some other libs 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
} 

Так в Android Studio I chooseBuild Вариант «отладки» для моего приложения, но когда я достиг точки останова в приложении и проверьте значения BuildConfig, поданной enableCrashlytics не может быть разрешен, и значение BuildConfig.BUILD_TYPE является «выпуском».

Что я делаю неправильно?

+0

попытаться удалить: debuggable false –

+0

В вашем файле сборки есть несколько дополнительных закрывающих брекетов ('}'). –

ответ

1

Это может произойти, если код находится в library, в проекте есть несколько классов BuildConfig, по одному на модуль, и только основное приложение будет обновляться, как ожидалось.

Если вы хотите иметь надлежащую BuildConfig.BUILD_TYPE через приложение, вы должны были бы иметь debug/release типов сборки на все ваши модули gradle файлов и просачивание выбранного типа сборки из основного файла gradle к dependencies.

Смежные вопросы