Android Studio 调试器单步执行旧版本代码,不是最新的

Android Studio debugger stepping though old version of code, not up to date

我是 Android 开发人员的新手,所以我可能遗漏了一些我可以尝试的明显内容。

我正在尝试调试一些代码,但调试器正在逐步执行旧版本的代码,而不是我项目中的当前版本。

很明显它跳过了我的异常 'throw' 并进入注释代码

我试过:

这实际上是cwac demo v9,所以它是一个使用'camera'库的demo app,它在我正在调试的cwac相机库项目中。

我不清楚 gradle 在哪里构建了什么,所以我没有 'hard cleaned' 来自 Windows 资源管理器的任何内容。我什至无法检查文件日期...

关于如何检查最新的代码是否发送到设备,你能给我什么提示?

谢谢。

试试这个。打开您应用的 build.gradle 文件,然后进行更改(只需添加白色 space)。然后,点击右上角的 "Sync Now" 按钮。

我不太确定缓存发生了什么,但这似乎为我解决了这个问题。

作为一个 Android 新手,面对 IDE/gradle 的复杂性(希望它更像 Visual Studio!),我很难找到问题所在,但是我做到了,它特别适用于 CWAC-Camera 项目(来自 GitHub)。

FWIW 为什么它是一个如此复杂的 IDE/build 系统,似乎其中很多都可以内部化(我的意思是,让 gradle 看不见)..?

解决方案

File->Project Structure->(选择左边你运行的模块,对我来说是camera-v9)->(Choose Dependencies tab)

CWAC 相机应该有一个 Maven 库条目,标记为 Scope=="Release compile",还有一个 Module 图书馆,范围=="Debug compile".

我删除了 Maven 库条目,并将模块条目更改为 scope=="Compile"。然后就成功了。

所以发生的事情是使用库的 Maven 副本而不是模块。为什么?不确定,因为我认为 运行 在某些东西上设置 'debugger' 需要 'debug' 构建模式。我找到了这个但无法遵循已接受的答案(因为我不太了解 IDE)Why does Gradle build my module in Release mode when the app is in Debug

我不知道这只是 CWAC 演示项目中的一个错误,还是我的设置有问题。在我看来,使用 Maven 库发布可能会产生意想不到的结果(即自定义消失)。

说了这么多,CWAC好像是救命稻草,非常感谢!