Android Studio - MainActivity.java не может видеть атрибуты id

Я дал атрибут id: android: id = "@ + id / animation_layout"
в макете по умолчанию (пронумерованный как 1) в activity_main.xml

Но когда я попытался вызвать его в MainActivity.java по его идентификатору: ConstraintLayout constraintLayout = findViewById (R.id.animation_layout);

  • Он не найдет (пронумерован как 2)

Что мне не хватает?

Android Studio - MainActivity.java не может видеть атрибуты id

также прикрепил код:

<android.support.constraint.ConstraintLayout xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res-auto"
xmlns:tools = "http://schemas.android.com/tools"
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:id = "@+id/animation_layout"
android:background = "@drawable/gradients_list"
tools:context = ".MainActivity">

и код Java:

    @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //Gradient animation

    ConstraintLayout constraintLayout = findViewById(R.id.animation_layout);
    AnimationDrawable  animationDrawable = (AnimationDrawable) constraintLayout.getBackground();
    animationDrawable.setEnterFadeDuration(2000);
    animationDrawable.setEnterFadeDuration(4000);
    animationDrawable.start();

Спасибо за помощь :)

просто зайдите в меню сборки Android и запустите команду clean! это решит проблему!

Rizwan Atta 22.07.2018 22:25
0
1
2 859
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это происходит когда-то с момента нового обновления Android! что вы даже предоставляете идентификаторы в xml, но все же java api для Android их не извлекает! так что вам нужно сделать этот шаг!

1: очистка сборки удаляет старый встроенный кеш! и это должно решить проблему

2: если это не приводит к тому, что ваш идентификатор читается в java, вы можете использовать опцию Rebuild из того же меню!

3: если это не сработает, вы можете перейти с ФАЙЛ-> аннулировать кеш и перезапустить

Иногда это работает, просто снова синхронизируя градиент, но ваши решения хороши.

Jsperk 23.07.2018 02:01

да, в основном, если вы синхронизируете gradle, он автоматически запускает команду очистки! как вы можете видеть в файле build.gradle проекта, для него определена эта функция Clean! @Jsperk

Rizwan Atta 23.07.2018 02:32

@EliranLiriElgozi проголосовать за это! Рад что помогло!

Rizwan Atta 28.07.2018 00:12

Другие вопросы по теме