Android studio gradle breakpoint没有找到可执行代码

时间:2016-10-04 14:59:41

标签: android debugging android-studio android-gradle breakpoints

我正在使用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向我展示的屏幕截图:

No executable code found problem

这也不是唯一的情况。碰巧,编译器在跳过时跳转到代码的另一部分而不是被调试的部分。

这里有合理的解释吗? 暂停:“线程”和“所有”尝试,结果相同。

更新1: 使用Eclipse重新创建项目,一切正常。 使用Android工作室这仍然无法实现!

8 个答案:

答案 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以检查是否有任何错过的选项。

尝试文件中的所有选项后 - >我能做的设置,我得出的结论是,“瞬间奔跑”是导致我浪费这么多宝贵时间的邪恶。

我不明白它与我的问题有什么关系,但在清除所有复选框之后:

enter image description here

我最终得到了一个执行开发人员期望的方式的代码:

enter image description here

答案 2 :(得分:3)

我遇到了类似的问题。

我试过了:

  • 清洁项目
  • 重置Android Studio
  • 重建项目
  • 禁用即时运行

它没有用。

我最后做的就是 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,清理缓存
  • 将调试器设置为在所有线程上停止
  • 我的调试版本中没有minifyEnabled。

从Android Studio 3.6开始,禁用即时运行不是一个选项 所以我没有尝试。 see this StackOverflow question

答案 7 :(得分:-1)

确保您没有拼错文件名和类名。