简体   繁体   中英

Can't run in debug mode

I am trying to launch my android application in debug mode, but everytime I check BuildConfig.DEBUG it says it is false. Even further, a buildconfigField defined in my buildtypes does not even show up in BuildConfig.

Here is my gradle file:

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:2.6.6@aar') {
        transitive = true;
    }
}

So in Android Studio I chooseBuild Variant "debug" for my app, but when I hit a breakpoint in the application and check the values of BuildConfig , the filed enableCrashlytics cant be resolved and the value of BuildConfig.BUILD_TYPE is "release".

What am I doing wrong?

This may happen if the code is in a library , there are multiple BuildConfig classes in a project, one per module, and only the main app one will be updated as expected.

If you want to have a proper BuildConfig.BUILD_TYPE across the app, you'd need to have debug / release build types on all your modules' gradle files, and trickle down the selected build-type from the main gradle file to the dependencies .

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM