Сдох ветеран 4.1, теперь не смогу поддерживать старые оси, тестировать не на чем((. Три вечера кряду код утерянный переписывал, теперь буду умнее - что-то сделал новое - и в аккаунтном хранилище архив обновляю
Та я тоже обленился, всякой мелочевкой занимаюсь). Вчера решил немного анимировать появление/скрытие диалоговых окон (DialogFragment). А то как-то резко они они появляются, типа - шлеп, на тебе диалог. Сделал fade, немного scale... Все ок, но! Кроме диалогов, где ввод текста. Там какой-то конфликт с клавиатурой походу, Оставил их без анимации.
Щас на девятом андроиде кодю, кое-что пришлось переписывать. Для уведомлений нужно каналы создавать, старый код не работает (но и не крэшится хоть), какого-то фига перестал работать код вызова клавиатуры при показе EditText, пришлось вставить код в editText.postDelayed.... с задержкой в долю сек., , хотя на 4.1 и 7 андроидах было без проблем... Хотя, может быть просто прошивка косячная
С 7 на 9 перешил , пока не сталкивался с проблемами. Единственный момент - с правами приложения. В 9 в плане политики безопасности серьезнее стало. Недавно делал на заказ приложение для автоматических ворот, пришлось слегка повозиться.
Один момент я вообще случайно обнаружил. Нужно было отправить файл с помощью стороннего приложения, email к примеру. Файл сохранен в пользовательской памяти. Среди всего прочего строка Uri uri = Uri.fromFile(file); И вот тут два прикола. Первый в том, что я, как неопытный в ява обернул код в try-catch, дабы на стадии разработки выявить свои косяки, ибо писал это впервые. Да так и оставил, работает же, отвлекся на другие участки. Проблема осталась завуалирована. А второй прикол что вот так просто получить объект Uri начиная (вроде) с 6 анндроида не так-то просто. А сааамый прикол- это то, что код то отрабатывает без проблем, то ловит exception, где-то 1 к 3м, а т.к. это было не основной частью логики программы, мне было достаточно одного положительного прохода. Мне "подфортило", участок отработал, Я пошел дальше, а потом, я опозорился, когда попытался отправить файл заказчику по вайберу. Всплывающий toast (тот, который в ветке catch) заскриншотил и пошел искать ответ. Что только там не начитался... Контент-провайдер создать, итд итп... куча кода. Плюсиков куча в придачу. А тут чувак пишет, вот две строчки кода, в onCreate, StrictMode.VmPolicy.Builder builder = new StrictMode.VmPolicy.Builder(); StrictMode.setVmPolicy(builder.build()); и все работает как прежде!
Вчера целый час в aide не мог понять, почему программа рушится прямо на старте, даже не успевая в журнал логи сохранить. Оказалось вот что. Я скопировал кусок метода - от начала и не до конца, т.е. фигурная скобка открыта, но не закрыта. Aide автоматом ее закрыла (так устроен редактор), я это прщелкал. Дописал код, закрыл скобку. И компилятор этого не заметил! Все собрал, ничего не подчеркнул. По крупинкам разбирал, пока нашел эту скобочку затерянную, мне ведь и в голову не могло прийти, что такое может быть. А вот может.