在我的代码下面但它无效 - 请参阅this screenshot of the error during debugging,
无法找到本地变量' ac'
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccounts();
for (final Account ac : accounts)
{
String acname = ac.name;
System.out.println("Accounts : " + acname);
}
答案 0 :(得分:1)
从您的屏幕截图中我看到您正在使用Android Studio
并且您的代码没有问题,而是一些调试设置。如果您打开Android Studio
首选项并转到Build, Execution, Deployment > Debugger > Data Views
,您可能会看到选项Enable auto expressions in Variables view
已勾选,因为默认情况下会勾选。它看起来应该是这样的:
现在,如果您检查IntelliJ
docs,您会发现这一点(请注意IntelliJ
和Android Studio
正在同一个引擎上运行,以防您想知道为什么我说IntelliJ
个文档):
如果希望IntelliJ IDEA调试器自动计算表达式并在“调试”工具窗口的“变量”窗格中显示相应的值,请选择此选项。
调试器分析断点附近的上下文(当前语句,前一个语句和后一个语句)。它这样做是为了在源代码中找到各种表达式(如果可用),例如myvar.myfield。
如果此类表达式不包含显式方法调用,则调试器将对它们进行求值并在“变量”视图中显示相应的值。
基本上,他们说IDE会检查断点周围的代码以识别变量并计算它们的值(不包括方法调用)。话虽这么说,当控件到达声明accounts variable
的行时,IDE将检查变量的代码并找到ac
变量,但是因为在执行点处将无法计算其值该变量尚未声明,因此整个操作将以无法找到变量的消息结束
要解决此问题,您必须从设置中取消选中该选项,否则您可以保留此选项,因为它不会影响您的代码(它现在完全正常运行)。
答案 1 :(得分:0)
检查当前是否有任何帐户登录。
转到有帐户的设置。检查登录的帐户数。