2016-10-19 12 views
2

Ниже мой код, но он не работает - см this screenshot of the error during debugging,Не удается найти локальную переменную «ас»

Не удается найти локальную переменную «ас»

AccountManager am = AccountManager.get(this); 
    Account[] accounts = am.getAccounts(); 
    for (final Account ac : accounts) 
    { 
     String acname = ac.name; 
     System.out.println("Accounts : " + acname); 

    } 
+1

проверить это -> http://stackoverflow.com/questions/2112965/how-to-get-the-android-devices-primary-e-mail-address –

+2

работоспособно. –

+1

В чем проблема с моим кодом? –

ответ

0

Проверить есть ли счета в настоящий момент зарегистрированы.

Перейти к настройкам, в которых есть учетные записи. проверьте, сколько учетных записей зарегистрировано.

1

С вашего скриншота Я видел, что вы используете Android Studio, и никаких проблем с вашим кодом нет, а некоторые настройки отладки. Если вы откроете Android Studio предпочтений и перейдите к Build, Execution, Deployment > Debugger > Data Views, вы, вероятно, увидите опцию Enable auto expressions in Variables view, отмеченную галочкой, так как она отмечена по умолчанию. Это должно выглядеть примерно так: Android Studio Preferences Теперь, если вы будете проверять IntelliJdocs для этого вы найдете (обратите внимание, что IntelliJ и Android Studio работают на том же движке, в случае, если вы задаетесь вопросом, почему я сказал о IntelliJ документы):

Выберите этот параметр, если вы хотите, чтобы отладчик IntelliJ IDEA автоматически оценивал выражения и показывал соответствующие значения в области «Переменные» окна «Инструмент отладки».

Отладчик анализирует контекст вблизи точки останова (текущий оператор, одно заявление до и после него). Он делает это, чтобы найти различные выражения в исходном коде (если есть), например, myvar.myfield.

Если такие выражения не содержат явных вызовов метода, отладчик оценивает их и отображает соответствующие значения в представлении «Переменные».

В основном, они говорят, что IDE проверит код вокруг точки останова, чтобы идентифицировать переменные и вычислить их значения (вызовы методов не включены). При этом, когда элемент управления достигает строки, где объявляется accounts variable, IDE проверит код для переменных и найдет переменную ac, но не сможет вычислить ее значения, поскольку на момент выполнения эта переменная еще не объявлена, поэтому вся операция завершится сообщением о том, что переменная не может быть найдена.
Чтобы исправить это, вы должны снять этот параметр с настроек или оставить его таким же, как это, так как это не повлияет на ваш код (он полностью функциональен прямо сейчас).