Попытка вызвать виртуальный метод 'android.graphics.Rect android.graphics.drawable.Drawable.getBounds ()' для пустой ссылки на объект - PullRequest
0 голосов
/ 12 октября 2019

У меня есть следующий код:

etEmail.setOnTouchListener((view, motionEvent) -> {
    final int DRAWABLE_RIGHT = 2;
    if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
        if(motionEvent.getRawX() >= (etEmail.getRight() - etEmail.getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) {
            Utils.getInstance().showPopup("...",MainActivity.this,null);
            return true;
        }
    }
    return false;
});

Хотя обычно это работает, я неожиданно получил отчет о сбое, который говорит:

Попытка вызвать виртуальный метод android. graphics.Rect android.graphics.drawable.Drawable.getBounds () 'для нулевой ссылки на объект

для бренда: Xiaomi, модель: Redmi Note 6 Pro, Android: 9.

Есть ли у кого-нибудь здесь идеи, что может привести к «исчезновению» или тому, что ничья? »

Ответы [ 2 ]

1 голос
/ 14 октября 2019

В вашем xml оно говорит drawableEnd, а в вашем коде вы предполагаете, что это drawable справа. У меня такое чувство, что сбой произошел на устройстве с языком RTL (то есть рисование будет слева).

0 голосов
/ 13 октября 2019

В случае сбоев проверьте, происходит ли сбой на заднем или переднем плане. Если он находится в фоновом режиме, скорее всего, редактируемый текст уничтожен, и поэтому вы получаете npe (например, пользователю позвонили, прежде чем отпустить палец). Если нет, то более подробная информация о потоке поможет выяснить проблему.

...