Студия Android: невозможно добавить новые элементы интерфейса - PullRequest
0 голосов
/ 17 ноября 2018

Мне недавно пришлось добавить несколько переключателей в представление в приложении. Тем не менее, я не могу на самом деле компилировать, так как при компиляции я получаю следующую ошибку: error: cannot find symbol variable CR, где CR - идентификатор нового элемента пользовательского интерфейса. Однако он распознает ранее созданные элементы пользовательского интерфейса без проблем (в том же макете, разумеется).

        <RadioGroup
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0.02">

                <RadioButton
                android:id="@+id/CR"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:text="Example text" />
        </RadioGroup>

Этот xml приводит к тому, что CR не найден.

  <EditText
            android:id="@+id/Note"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="textPersonName"
            android:text="@string/note"
            android:textColor="@color/borderColor" />

В качестве сравнения, я могу найти это представление без каких-либо проблем. В порядке, вот findViewById() звонки для обоих идентификаторов:

RadioButton cardLeft = findViewById(R.id.CR); //leads to symbol not found

final EditText NoteField = (EditText) findViewById(R.id.Note); //works perfectly.

Я также заметил, что идентификатор идентификатора никак не отображается в R.

Вот что я сделал, чтобы попытаться решить проблему:

Clean Project-->Rebuild

Invalidate Caches and restart

Invalidate Caches-->clean project-->Restart

Deleted R

Checked that android.R wasn't being imported

Recreated the project and imported the code from git (and only the code, no generated files of course)

Tried changing IDs, just in case, to no avail.

Changed Settings-->Data Binding to "Reference code generated by the compiler" instead of "Reference code generated by Android Studio"

Очевидно, что любые изменения в коде или настройках сопровождаются аннулированием кэша и чистым проектом, на всякий случай. Дальнейшее тестирование показало, что я вообще не могу добавлять новые элементы пользовательского интерфейса, поскольку они не добавляются в R.

При автозаполнении новые идентификаторы будут иметь отрицательные значения вместо адреса.

Итак, поскольку у меня полностью закончились идеи, есть ли что-то, что я пропустил / более неизвестные решения для этой проблемы?

1 Ответ

0 голосов
/ 17 ноября 2018

Единственный способ решить эту проблему - объявить идентификаторы в пользовательском XML-файле, а затем использовать android:id="@id/CR" вместо android:id="@+id/CR.

Это обходной путь, но он не решил реальную проблему, поэтому я все еще открыт для предложений, на всякий случай.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...