2016-06-26 4 views
2

У меня есть проблема с этим:андроид студия не может разрешить символ идентификатора

EditText_Username = (EditText)findViewById(id.EditText_Username); 

У меня есть сообщение об ошибке cannot resolve symbol id Каждой строки коды, которая имеет идентификатор имеет ту же ошибку. Я попытался перестроить весь проект и синхронизировать его с градиентом, но ошибка остается. PS: приложение запускалось нормально в эмуляторе даже с кодом (id) в коде.

+0

Вы статически импортировали 'R.id'? Зачем? –

+0

Типичная проблема с этой ошибкой - неверно сконфигурированный XML-файл –

+0

Любой способ исправить файл XML? Нужно ли добавлять что-то в файл XML? –

ответ

2

использования

EditText EditText_Username = (EditText)findViewById(R.id.EditText_Username); 

вместо этого. и убедитесь, что у вас есть

android:id="@+id/EditText_Username" 

для объекта EditText, который вы ищете по идентификатору в своем XML, используя ваш Java-класс.

0

См. Ваш AndroidManifest.xml, у вас будет идентификатор пакета. Теперь заменить идентификатор с packageId.R.id в файле Java

0

Какой класс вы используете? Активность или фрагмент?

если фрагмент

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View view = inflater.inflate(R.layout.fragment_layout, container, false); 
    EditText_Username = (EditText) view.findViewById(R.id.EditText_Username); 
    return view; 
} 

, а также для хорошей практики кодирования, сделать свой объект небольшой случай, как "editTextUsername" "etUsername", "imgThumb", "tvTitle" и т.д.

0

Как отметил @ cricket_007, вы, вероятно, statically imported класса R.

В качестве решения поместите свою каретку перед разделом id.EditText_Username вашего кода, а затем нажмите Alt+Enter. В всплывающем окне выберите Expand static import to R.id, затем выберите Replace all and delete the import. Теперь ваш оператор import static удаляется, и все вхождения переименовываются в R.id.

0

Вы должны написать R.id.

Код сначала скомпилирован, а затем запускается на реальном или виртуальном устройстве. Поэтому невозможно скомпилировать эмулятор, но не реальное устройство.

Смежные вопросы