Gradle发布版本仍可调试?

7
根据Gradle文档,"release" buildType的“debuggable”默认值为false。然而,不管我是否将其明确设置为false,我的发布版本似乎总是可以进行调试(我可以看到logcat输出)。我是否对此属性有误解?请问有人能解释一下吗?
这是我的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']
                }
            }
        }
    }
}
3个回答

8

查看logcat与应用程序是否可调试无关。

如果您在DDMS中看到该进程,则您的应用程序是可调试的(除非您正在查看模拟器,在这种情况下所有应用程序都被视为可调试)。


6
如果您在Android Studio中使用“Build -> Generate Signed APK”,则它将使用assembleDebug gradle任务而不是assembleRelease。请尝试手动执行assembleRelease任务,使debuggable标志为false。

2

为确保禁止调试,您可以在AndroidManifest.xml文件的应用程序标签中声明debuggable=false。不确定这是否对您有帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接