Android Studio 调试器单步执行旧版本代码,不是最新的
Android Studio debugger stepping though old version of code, not up to date
我是 Android 开发人员的新手,所以我可能遗漏了一些我可以尝试的明显内容。
我正在尝试调试一些代码,但调试器正在逐步执行旧版本的代码,而不是我项目中的当前版本。
很明显它跳过了我的异常 'throw' 并进入注释代码
我试过:
- 正在卸载之前安装到设备上的 apk
- Rebuild/clean
- 使用 Genymotion 和真实设备(姜饼)
- adb kill-server
- 重新启动并。工作室
- 关于 SO 的类似问题
这实际上是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好像是救命稻草,非常感谢!
我是 Android 开发人员的新手,所以我可能遗漏了一些我可以尝试的明显内容。
我正在尝试调试一些代码,但调试器正在逐步执行旧版本的代码,而不是我项目中的当前版本。
我试过:
- 正在卸载之前安装到设备上的 apk
- Rebuild/clean
- 使用 Genymotion 和真实设备(姜饼)
- adb kill-server
- 重新启动并。工作室
- 关于 SO 的类似问题
这实际上是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好像是救命稻草,非常感谢!