【问题标题】:Gradle release build still debuggable?Gradle 发布版本仍然可以调试吗?
【发布时间】:2013-07-11 15:48:52
【问题描述】:

根据 Gradle 文档,“可调试”和“发布”构建类型的默认值为 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']
                }
            }
        }
    }
}

【问题讨论】:

    标签: android debugging gradle release


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      如果您在 Android Studio 中使用 Build -> Generate Signed APK,则它使用 assembleDebug gradle 任务而不是 assembleRelease。尝试手动执行assembleRelease 任务,debuggable flag 应该为 false

      【讨论】:

        【解决方案3】:

        为确保不允许调试,您可以在 AndroidManifest.xml 的应用程序标签中声明 debuggable=false。不知道对你的情况是否有帮助。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-05
          • 2010-10-27
          • 2020-08-02
          • 1970-01-01
          相关资源
          最近更新 更多