无法在调试模式

时间:2017-02-02 09:26:16

标签: android gradle android-gradle build.gradle

我正在尝试以调试模式启动我的Android应用程序,但每次检查BuildConfig.DEBUG时它都说它是假的。更进一步,我的buildtypes中定义的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:2.6.6@aar') {
        transitive = true;
    }
}

所以在Android Studio中我选择了Build Variant" debug"对于我的应用程序,但是当我在应用程序中点击断点并检查BuildConfig的值时,归档的enableCrashlytics无法解析,BuildConfig.BUILD_TYPE的值为"发布&# 34。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果代码位于library中,项目中有多个BuildConfig类,每个模块一个,并且只有主应用程序将按预期更新,则可能会发生这种情况。

如果您想在整个应用中使用BuildConfig.BUILD_TYPE,那么您需要在所有模块上使用debug / release版本类型' gradlegradle个文件,并将选定的构建类型从主dependencies文件传播到 cursor = conn.cursor() args_str = ','.join(cursor.mogrify("(%s,%s,%s,%s,%s,%s,%s,%s)", x) for x in data) cursor.execute( "insert into table1 (n, p, r, c, date, p1, a, id) values " + args_str)`