我正在使用Android Studio 2.1.3和gradle开发一个Android应用程序。
问题在于,一个简单方法中的断点永远不会被击中,尽管必须被击中,因为在应用程序调试期间满足条件。
首先,我认为问题与此问题的答案中描述的问题有关:
BuildConfig.DEBUG always false when building library projects with gradle
为了测试这一点,我删除了库项目并将所有源代码集成到主app模块中。它什么都没解决。 需要注意的是,以下是build.gradle,其中minify对于调试/发布都设置为false:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.mycompany.mymobileapp"
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
debuggable true
jniDebuggable true
renderscriptDebuggable true
zipAlignEnabled false
}
debug {
debuggable true
minifyEnabled false
zipAlignEnabled false
jniDebuggable true
renderscriptDebuggable true
}
}
productFlavors {
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
testCompile 'org.mockito:mockito-core:2.0.5-beta'
testCompile 'com.android.support:support-v4:23.1.1'
testCompile 'org.powermock:powermock-api-mockito:1.6.2'
testCompile 'org.powermock:powermock-module-junit4-rule-agent:1.6.2'
testCompile 'org.powermock:powermock-module-junit4-rule:1.6.2'
testCompile 'org.powermock:powermock-module-junit4:1.6.2'
compile 'com.android.support:appcompat-v7:23.1.1'
}
以下是Android Studio向我展示的屏幕截图:
这也不是唯一的情况。碰巧,编译器在跳过时跳转到代码的另一部分而不是被调试的部分。
这里有合理的解释吗? 暂停:“线程”和“所有”尝试,结果相同。
更新1: 使用Eclipse重新创建项目,一切正常。 使用Android工作室这仍然无法实现!
答案 0 :(得分:20)
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
}
在build.gradle文件的debug block中设置 minifyEnabled false 。
答案 1 :(得分:7)
使用Eclipse重新创建应用程序并观察正确的行为后,我返回Android Studio以检查是否有任何错过的选项。
尝试文件中的所有选项后 - >我能做的设置,我得出的结论是,“瞬间奔跑”是导致我浪费这么多宝贵时间的邪恶。
我不明白它与我的问题有什么关系,但在清除所有复选框之后:
我最终得到了一个执行开发人员期望的方式的代码:
答案 2 :(得分:3)
我遇到了类似的问题。
我试过了:
它没有用。
我最后做的就是 Ctrl + Shift + + 。这是扩展所有代码块的捷径。我刚刚在那之后运行了这个项目并且有效。
答案 3 :(得分:1)
工作室缓存出现问题。
文件->使缓存无效/重新注册...可能会帮助您。
答案 4 :(得分:0)
尝试清理并重建项目。 尝试在此方法中进行一些登录,以检查它是否正在执行。
LOG.(TAG,"method being executed")
答案 5 :(得分:0)
重新启动Android Studio
如果您知道自从它运行之前,没有任何更改会导致此问题。然后尝试关闭并重新启动Android Studio。这对我来说Android Studio 3.5
有效。
干净版本对我不起作用
答案 6 :(得分:0)
在测试设备上卸载并安装该应用程序解决了我的问题。
我尝试过:
从Android Studio 3.6开始,禁用即时运行不是一个选项 所以我没有尝试。 see this StackOverflow question
答案 7 :(得分:-1)
确保您没有拼错文件名和类名。