Karim Varela
Karim Varela

Reputation: 7652

Gradle release build still debuggable?

According to the Gradle docs, the default value for "debuggable" a "release" buildType is false. However, whether I explicitly set it to false or not, my release build always seems to be debuggable (I can see logcat output). Am I misinterpreting this property? Can someone please explain?

Here's my build.gradle:

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.4.2'
    }
}

apply plugin: 'android'

dependencies {
    compile project(':facebook-android-sdk-3.0.1:facebook')
    compile project(':google-play-services_lib')
    compile project(':nineoldandroids')
    compile project(':SlidingMenu-master:library')
    compile project(':ViewPagerIndicator')
    compile project(':volley')
    compile project(':windowed-seek-bar')
    compile files('compile-libs/androidannotations-2.7.1.jar', 'libs/Flurry_3.2.1.jar', 'libs/google-play-services.jar', 'libs/gson-2.2.4.jar', 'libs/picasso-1.1.1.jar', 'libs/crittercism_v3_0_11_sdkonly.jar', 'libs/gcm.jar', 'libs/apphance-library.jar')
}

android {
    buildToolsVersion "17.0"
    compileSdkVersion 17

    signingConfigs {
        debug {
            storeFile file('keystores/debug.keystore')
        }

        release {
            storeFile file('keystores/release.keystore')
            storePassword "***"
            keyAlias "***"
            keyPassword "***"
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.release

            sourceSets {
                main {
                    manifest.srcFile 'AndroidManifest.xml'
                    java.srcDirs = ['src', 'normal']
                    resources.srcDirs = ['src']
                    aidl.srcDirs = ['src']
                    renderscript.srcDirs = ['src']
                    res.srcDirs = ['res']
                    assets.srcDirs = ['assets']
                }
            }
        }
    }
}

Upvotes: 7

Views: 7931

Answers (3)

guggenn
guggenn

Reputation: 361

To be sure that debug is not allowed, you can declare debuggable=false in your application tag in the AndroidManifest.xml. Don't know if it will help in your case.

Upvotes: 2

srgtuszy
srgtuszy

Reputation: 1548

If you're using Build -> Generate Signed APK in Android Studio, it's using assembleDebug gradle task instead of assembleRelease. Try executing assembleRelease task manually and debuggable flag should be false

Upvotes: 6

Xavier Ducrohet
Xavier Ducrohet

Reputation: 28539

Viewing logcat is not tied to whether the app is debuggable or not.

If you see the process in DDMS then your app is debuggable (unless you're looking at an emulator in which case all apps are considered debuggable).

Upvotes: 8

Related Questions