【问题标题】:Error when debugging foreach with Hashmap使用 Hashmap 调试 foreach 时出错
【发布时间】:2017-10-12 09:57:05
【问题描述】:

我有这个代码:

for (RoomProperties RP : roomHashMap.values()) {
    canvas.drawRect(RP.left, RP.top, RP.right, RP.bottom, snowWhite);
}

它已正确编译。但是矩形根本不会被绘制,所以我进入调试模式,果然有这些错误:

RP.left 找不到局部变量“RP” RP.right 找不到局部变量“RP”

现在,这实际上令人困惑。假设我没有得到 for each 的权利,但是为什么它编译运行了???

foreach 的正确方法是什么?编译器不报告错误有什么问题(我可能忽略了警告)?

【问题讨论】:

  • 它与 gradle 有什么关系?
  • 对不起,我以为gradle是android studio中使用的综合编译器...
  • 就像 Per Huss 写的那样,调试器没有找到有关变量名称的信息。只要您没有明确构建版本或修改配置,(最近的)标准 Android Studio 项目(如 2.0+ 版)应该自动build the debug Variant。某些 Gradle 配置可能会出现一些问题。但如果没有更多信息,就很难判断。这个Question about Debugging with Android Studio 也可能很有趣。

标签: java android debugging


【解决方案1】:

我怀疑您看到的找不到局部变量消息是调试器通知您它无法为您解析局部变量。在这种情况下,它根本不是运行时问题,并且可以通过确保编译 Java 代码并启用“生成调试信息”或类似选项来轻松解决。这将为已编译的代码添加额外的信息以帮助调试器。祝您调试顺利!

【讨论】:

    猜你喜欢
    • 2016-04-02
    • 1970-01-01
    • 2011-06-30
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多