设置"调试"的值时为什么会出错?到"真"在Android应用程序?

时间:2014-10-05 13:21:47

标签: android debugging android-manifest

每当我设置" debugging"的值时到"真"在我的Android应用程序中,有一个错误。 错误的描述是:"避免硬编码调试模式;将其删除允许调试和发布版本自动分配一个"。

1 个答案:

答案 0 :(得分:0)

从清单中删除android:debuggable="true"

首先,你可能不需要它。即使使用Eclipse,普通的IDE构建也可以自动调试,就像仿真器上的任何进程一样。出于安全原因,生产硬件上的发布版本将无法调试,这是您想要的。

如果您需要更多灵活性,并且使用的是Android Studio / Gradle for Android,请在build.gradle中设置自定义构建类型,以模拟其他方案。默认的debug构建类型将使应用程序成为可调试的;默认的release构建类型会使您的应用无法调试。自定义构建类型可以使用debuggable语句来说明它们应该做什么:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.12.2'
    }
}

apply plugin: 'com.android.application'

dependencies {
}

android {
    compileSdkVersion 19
    buildToolsVersion "19.1.0"

    defaultConfig {
        versionCode 2
        versionName "1.1"
        minSdkVersion 14
        targetSdkVersion 18
    }

    signingConfigs {
        release {
            storeFile file('HelloConfig.keystore')
            keyAlias 'HelloConfig'
            storePassword 'laser.yams.heady.testy'
            keyPassword 'fw.stabs.steady.wool'
        }
    }

    buildTypes {
        debug {
          applicationIdSuffix ".d"
          versionNameSuffix "-debug"
        }

        release {
            signingConfig signingConfigs.release
        }

        mezzanine.initWith(buildTypes.release)

        mezzanine {
            applicationIdSuffix ".mezz"
            debuggable true
        }
    }
}

在这里,我说我的mezzanine自定义构建类型应该是可调试的,在其定义中通过debuggable true