Почему происходит ошибка "endAllActiveAnimators on RippleDrawable with handle 0xb400007a89efa920"?

Итак, пишу приложуху, остался главный алгоритм. Он должен выводить на text view текст по одному слову и использовать простую анимацию линейного увеличения текста. Для этого в цикле беру из очереди по одному слову, вставляю в text view, пускаю анимацию и пишу (?)

Thread. sleep()!;

В результате ошибку не выдаёт, но ничего и не работает, лигирование не помогает. На текст вью ничего не отображается. В консоль выводит это:

endAllActiveAnimators on
0xb400007a97c38100 (RippleDrawable) with handle 0xb400007a89efa920

и это:

W/System: A resource failed to call close.  W/MIUIScout App:
Enter APP_SCOUT_WARNING State W/MIUIScout App: Event:APP_SCOUT_WARNING
Thread:main backtrace:
        at java.lang.Thread.sleep(Native Method)
        at java.lang.Thread.sleep(Thread.java:450)
        at java.lang.Thread.sleep(Thread.java:355)
        at com.example.speedreader.Stage.countDoun(Stage.java:102)
        at com.example.speedreader.Stage.onClick(Stage.java:207)
        at android.view.View.performClick(View.java:7753)
        at android.view.View.performClickInternal(View.java:7730)
        at android.view.View.access$3700(View.java:861)
        at android.view.View$PerformClick.run(View.java:29136)
        at android.os.Handler.handleCallback(Handler.java:938)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loopOnce(Looper.java:210)
        at android.os.Looper.loop(Looper.java:299)
        at android.app.ActivityThread.main(ActivityThread.java:8105)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1045)
I/ple.speedreade:
Thread[6,tid=8133,WaitingInMainSignalCatcherLoop,Thread*=0xb400007a96a40000,peer=0x15280000,"Signal
Catcher"]: reacting to signal 3 I/ple.speedreade:
package com.example.speedreader;

import static java.lang.Thread.sleep;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.annotation.SuppressLint;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageButton;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;

public class Stage extends AppCompatActivity implements View.OnClickListener {


    @SuppressLint("StaticFieldLeak")
    private static ImageButton playStop, back, forward;
    private static final String LOG = "MyLog";
    private static TextView maniTextView;
    private static String[] arrayLine;
    private static Queue<String> rowOfWords = new LinkedList<>();
    private static String line;
    private static boolean play = false;
    private static boolean t = true;
    private static File file;
    static Book book;
    private static int numberOfWord;
    private static Scanner sc;
    static String TAG = "MyLog";
    private static Queue<String> rowOfPastWords = new LinkedList<>();
    public static boolean backBool = false;
    public static boolean forwardBool = false;
    private static int coun = 0;
    private static boolean flag=true;
    private static boolean delay=false;

////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////

    static void closer() {
        sc.close();
    }

    static void preparation() {
        Log.d(LOG, "Attempt : preperation");
        file = new File(book.getPath());
        if (file.exists()) {
            String s = file.getAbsolutePath();
            try {
                sc = new Scanner(s);
            } catch (Exception e) {
                Log.d(LOG, "Error : preparation");
            }
        } else{ Log.d(LOG, "Error : preparation(FileNotFound)");}
            Log.d(LOG, "Success : preparation");
    }

    static Queue<String> filling() {
        Log.d(LOG, "Attempt : filling");
        while (rowOfWords.size() > 1000 && sc.hasNextLine()) {
            line = sc.nextLine();
            arrayLine = line.split(" ");
            for (String a : arrayLine) {
                rowOfWords.offer(a);
            }
        }
        Log.d(LOG, "Success : filling");
        return rowOfWords;
    }

    static void showOneWord() throws InterruptedException {
        Log.d(LOG, "Attempt : showOneWord");
        rowOfPastWords.offer(rowOfWords.peek());
        if (rowOfPastWords.size() > numberOfWord) {
            rowOfPastWords.poll();
        }
        maniTextView.setText(rowOfWords.poll());
        Thread.sleep(100);
        Log.d(LOG, "Succes : showOneWor");

    }


    private static void countDoun() {
        for (int i = 3; i >= 0; i--) {
            maniTextView.setText(i+" ");
             try {
                Thread .sleep(1000);
            } catch (InterruptedException e) {
                Log.d(LOG, "Error : countDoun");
            }
        }
    }

    private static void back() {
        Log.d(LOG, "Attempt : back");
        if (rowOfWords.size() == 0) return;
        try {
            countDoun();
            for (int i = 0; i < rowOfPastWords.size(); i++) {
                maniTextView.setText(rowOfPastWords.poll());
                Thread.sleep(100);
            }
        } catch (InterruptedException e) {
            Log.d(LOG, "Error : back");
        }
        backBool = false;
        Log.d(LOG, "Succes : back");
    }

private static void forward() {
        for (int i = 0; i < numberOfWord; i++) {
            rowOfPastWords.offer(rowOfWords.peek());
            if (rowOfPastWords.size() > numberOfWord) {
                rowOfPastWords.poll();
            }
            rowOfWords.poll();
        }
        forwardBool = false;

    }

    private static void count() {
        if (coun % 2 == 0) {
            flag = true;
        } else {
            flag = false;
            delay = true;
        }
        coun++;
    }

    ////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
    private static void read() {
        try {
             while (true) {

                if (!flag) continue;
                if (delay) {
                    countDoun();
                    delay = false;
                }
                if (rowOfWords.size() < 10) filling();
                if (rowOfWords.size() == 0) return;
                if (backBool) back();
                if (forwardBool) forward();

                showOneWord();


            }
        } catch (Exception e) {
            Log.d(LOG, "Error : read");
        }
    }


////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("myLog", "Попытка Stage.onCreate");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_stage);
        playStop = findViewById(R.id.stageIBPlayStop);
        playStop.setOnClickListener(this);
        back = findViewById(R.id.stageIBBack);
        back.setOnClickListener(this);


        forward = findViewById(R.id.stageIBForward);
        maniTextView = findViewById(R.id.stageTV);

        preparation();
        read();

    }

    @Override
    protected void onResume() {
        super.onResume();

    }

    @Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.stageIBPlayStop:
                count();
                break;
        }

    }

    ////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        g 
etMenuInflater().inflate(R.menu.menu_ 
st, menu);
        return true;

    }

    @Override
    public boolean 
 onOptionsItemSelected(@NonNull 
 MenuItem item) {
 
        switch (item.getItemId()) 
 {
            case R.id.set:
                Intent intent = 
new Intent(this, Setting.class);
                
startActivity(intent);
                break;
            case R.id.lib:
                Intent intent1 = 
new Intent(this, Library.class);
                
startActivity(intent1);
                break;
        }
        return true;
    }

    static void setBook(Book e) {
        book = e;
    }

}

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