Проблема, которая некоторое время сводит меня с ума (и она блокирует публикацию в магазине приложений Amazon, так как приложение было подавлено, но теперь я застрял с этой ошибкой, и они не будут ее переиздавать...).
У меня есть макет со списком слева и сеткой справа (показано на скриншоте). Щелчок по элементам списка слева (категории) вызывает API, возвращает некоторые материалы (фильмы) и отображает их в правой части. Затем, когда вы нажимаете на фильм в правильном фрагменте, должно произойти что-то еще.
Он работает в течение некоторого времени, ни один пользователь не жаловался, И он ДЕЙСТВИТЕЛЬНО работает на определенных устройствах... например, он работает на версии Amazon Fire, работающей под управлением Android 7.1, но не работает ни на их Android 5.1, ни на Android. 9 версий... [ОТРЕДАКТИРОВАНО 16/12/2020: см. редактирование внизу вопроса... путем изменения библиотек - возврата к более старым версиям - теперь это происходит только на устройствах Fire на базе Android 9, а старшие - и 5 и 7 - работают]
На проблемных устройствах происходит странное поведение: если вы выбираете один из первых трех элементов в списке, в сетке справа мой onClickListener не срабатывает. Начиная с 4-го элемента, срабатывает onClickListener и выполняется мой код.
Это происходит только при использовании пульта дистанционного управления / dpad ... сенсорные события также работают на первых трех ... но проблема возникает на некоторых моделях Amazon Fire TV и других Android TV, которые не имеют сенсорного экрана и должны использовать пульт (на одном эмуляторе я могу его воспроизвести, на другом - нет... даже если оба работают под управлением Android 10...)
Правильная часть состоит из фрагментов - это всегда один и тот же фрагмент, всегда один и тот же вызов API (просто другая категория в качестве параметра для вызова API), всегда один и тот же тип материала, который возвращается и должен отображаться, проходя через одно и то же. переходник, держатель и т.д.
Я теряюсь, где искать. Я даже пытался понизить версию библиотек, компилятора и т. д. Я могу поделиться фрагментами кода (хотя мне приходится много подчищать, и это все равно будет совсем немного, потому что это сложный макет со многими частями... но это очень похоже на этот set onClickListener в getview() с классом ViewHolder. Я также проверил это https://scottweber.com/2013/04/30/adding-click-listeners-to-views-in-adapters/ и я получаю точно такое же поведение...), но если бы код был действительно сломан, он НИКОГДА не работал бы ... но тот факт, что это "в целом работает", но не для первых трех элементов в списке, меня смущает... как я уже писал: это будет тот же фрагмент, тот же код... очень странно. Вот почему я подозреваю проблему с платформой/библиотекой/компилятором... ...но я не знаю, где искать...
ОТРЕДАКТИРОВАНО / ОБНОВЛЕНО 16/12/2020: После того, как я отправил версию, в которой я понизил МНОЖЕСТВО библиотек И Gradle (и без изменения кода с моей стороны), я смог снова получить одобрение в магазине Amazon, но с ограниченная совместимость устройств. В основном говорят, что он работает на самых старых устройствах и ломается только на (некоторых) новых... интересно. Я до сих пор не нашел виновника, но, по крайней мере, есть какое-то направление, где искать...