Android studio gradle 断点处未找到可执行代码

新手上路,请多包涵

我正在使用 Android Studio 2.1.3 和 gradle 开发一个 android 应用程序。

问题是简单方法中的断点永远不会命中,尽管它必须命中,因为在应用程序调试期间满足条件。

首先,我认为这个问题与这个问题的答案中描述的问题有关: BuildConfig.DEBUG always false when building library projects with gradle

为了对此进行测试,我删除了库项目并将所有源代码集成到主应用程序模块中。它什么也没解决。需要注意的是,以下是build.gradle,其中minify对于debug/release都设置为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 向我显示的屏幕截图:

找不到可执行代码问题

这也不是唯一的案例。碰巧编译器在 Stepping over 时完全跳转到代码的另一部分而不是被调试的部分。

这里有什么合理的解释吗?挂起:“thread”和“all”都试过了,结果一样。

更新 1: 使用 Eclipse 重新创建项目,一切正常。仍然很奇怪为什么使用 Android studio 这不起作用!

原文由 XMight 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 416
2 个回答

在使用 Eclipse 重新创建应用程序并观察到正确的行为后,我返回到 Android Studio 以检查是否有任何我遗漏的选项。

在尝试了文件 -> 设置中的所有选项后,我得出的结论是 Instant Run 是导致我浪费如此多宝贵时间的罪魁祸首。

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

在此处输入图像描述

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

在此处输入图像描述

原文由 XMight 发布,翻译遵循 CC BY-SA 3.0 许可协议

buildTypes {

release {
    minifyEnabled true
    shrinkResources true
    proguardFiles getDefaultProguardFile('proguard-android.txt')

}
debug {
    debuggable true
    minifyEnabled false
    proguardFiles getDefaultProguardFile('proguard-android.txt')

    }
}

在 build.gradle 文件的调试块中设置 minifyEnabled false

原文由 vinod 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题