Ошибка cannot find symbol loadAnimation при работе с AnimationUtils

У меня возникает ошибка при попытке создать анимацию.

Вот код моей activity:

package com.example.test;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.animation.Animation;
import android.widget.Button;
import android.widget.ImageView;

import com.google.android.material.animation.AnimationUtils;

import static java.security.AccessController.getContext;

public class MainActivity extends AppCompatActivity {

    Button fadeIn, fadeOut;
    ImageView imageView;
    Animation animFadeIn, animFadeOut;

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

        init();

    }

    private void init(){
        fadeIn = findViewById(R.id.fade_in);
        fadeOut = findViewById(R.id.fade_out);
        imageView = findViewById(R.id.image_view);

        fadeIn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                animFadeIn = AnimationUtils.loadAnimation(getContext(),R.anim.fade_in);
                imageView.setVisibility(View.VISIBLE);
                imageView.startAnimation(animFadeIn);
            }
        });

        fadeOut.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                animFadeOut = AnimationUtils.loadAnimation(this,R.anim.fade_out);
                imageView.setVisibility(View.VISIBLE);
                imageView.startAnimation(animFadeOut);
            }
        });
    }
}

В Android Studio loadAnimation светится красным...

скриншот ошибки, код в MainActivity.java

как это исправить?

Вот текст ошибки:

C:\Users\Oleg\AndroidStudioProjects\test\app\src\main\java\com\example\test\MainActivity.java:37: error: cannot find symbol
                animFadeIn = AnimationUtils.loadAnimation(getContext(),R.anim.fade_in);
                                           ^
  symbol:   method loadAnimation(AccessControlContext,int)
  location: class AnimationUtils


Ответы (1 шт):

Автор решения: Михаил Ребров

Ошибка говорит о том, что компилятор не может найти метод loadAnimation в классе AnimationUtils.

Это может быть из-за того что

  • вы импортировали другой класс с таким же названием но другой реализацией
  • вы используете другую версию андроида, в которой данного метода нет
  • вы скопировали код с невидимыми символами, либо опечаткой...
  • либо могли допустить опечатку сами...к примеру нечаянно туда могла кириллица нечаянно пробраться.

В вашем случае случилось первое - вы импортировали другой класс AnimationUtils

Замените строку

import com.google.android.material.animation.AnimationUtils;

на

import android.view.animation.AnimationUtils;

по идее все должно заработать.

→ Ссылка