根据Gradle文档,“debuggable”和“release”buildType的默认值为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']
}
}
}
}
}
答案 0 :(得分:8)
查看logcat与应用程序是否可调试无关。
如果您在DDMS中看到该过程,那么您的应用程序是可调试的(除非您正在查看模拟器,在这种情况下,所有应用程序都被视为可调试)。
答案 1 :(得分:6)
如果您正在使用Build - >在Android Studio中生成签名APK,它使用assembleDebug
gradle任务而不是assembleRelease
。尝试手动执行assembleRelease
任务,debuggable标志应为false
答案 2 :(得分:2)
为确保不允许调试,您可以在AndroidManifest.xml中的应用程序标记中声明debuggable=false
。不知道它对你的情况是否有帮助。