Задать вопрос
Ответы пользователя по тегу Android Studio
  • Как сделать элементы максимально похожие на элементы в настройках на AOSP-based прошивках?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    https://android.googlesource.com/platform/packages...

    исходники раскрыты. Посмотри сам как они там разверстали.
    И что в стилях/темах прописали
    Ответ написан
    Комментировать
  • Как отключить подчеркивание русских букв в Android Studio?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Правильно подчеркивает. И это не по тому, что буквы русские, а строковый литерал в коде.
    В ресурсы правильно выносить. А то проблемы с локализацией на другие языки будут.

    Так, что лучше галку на данный тип синтаксических проверок не снимать.
    Ответ написан
  • Как передать context в viewModel?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    вместо ActivityCompat.checkSelfPermission(this,
    можно обратиться так
    public boolean hasPermission(AppCompatActivity activity) {
            return activity.checkSelfPermission(ИМЯ ПЕРМИШЕНА)
                    == PackageManager.PERMISSION_GRANTED;
    }

    то есть передать активити как параметр.
    Но конкретно с BLUETOOTH_SCAN я предпочитаю вообще не связываться, а работать через механизм Complain Bluetooth

    https://github.com/402d/qrdisplay-sdk/blob/main/sr...
    Ответ написан
  • Как применить шрифт из файлов пользователя?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    permission.READ_EXTERNAL_STORAGE - табу / красная тряпка для модерации
    считается что приложения должны работать со своими файлами в песочнице -
    своих папках КЕШ (можно удалить при нехватке места на телефоне) и ФАЙЛЫ (равнозначно новой установке)

    Зашить файл в дистрибутив можно через Raw ресурсы или через Assets.
    Можно включить(преднаселить) минимум, а остальное нужное скачивать по запросу.

    Но применительно к шрифтам можно взять готовое решение для Google Fonts
    https://developers.google.com/fonts/docs/android?hl=ru
    Ответ написан
    2 комментария
  • Android studio при попытке открыть файл для парсинга упорно его не видит, какие могут быть причины?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Начиная с 12го проще считать, что файлов в андроиде нет. Есть потоки и контент провайдеры. Огрызки файлового доступа остались в двух местах.

    File file = new File(context.getFilesDir(), "test.xml");

    и аналогично к директории кеширования.
    Раз файл не находит, то очевидно проблема в том как он оказался записан по пути

    /data/user/0/com.example.myapplication/files/test.xml

    Из строк дальше читается, что вы хотите заселить свою базу данных.
    Начальные данные (xml) поместите в assets так как из дистрибутива по используемому пути автоматом ничего не попадет. Сделайте копирование, если напрямую не получиться читать
    private void copyPdfFromAssets() {
            executor.execute(() -> {
                try {
                    InputStream inp = getAssets().open("IppVirtual.pdf");
                    java.io.File file = new java.io.File(getApplication().getCacheDir(), "preview.pdf");
                    FileOutputStream fos = new FileOutputStream(file);
                    byte[] buf = new byte[32768];
                    int len;
                    while ((len = inp.read(buf)) != -1) {
                        if (len > 0) {
                            fos.write(buf, 0, len);
                        }
                    }
                    fos.flush();
                    fos.close();
                    inp.close();
                    handler.post(this::createPreview);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            });
        }

    Вот подобный кусок из моего свежего приложения.

    А если смотреть дальше, то заполнение базы данных гуглить как "android prepopulate room database"
    кто-то копирует готовый файл, а мне пару записей проще заполнить выполнением захардкоженных запросов
    Ответ написан
    Комментировать
  • Почему вылетает при запуске?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    смотреть вывод logcat. Без текста ошибки только в режиме телепата :
    99% забыли exporred=true или совсем ее указать в манифесте
    1 процент, на то что при копирование из другого места забыли еще какие нужные ресурсы.
    Ответ написан
  • Где можно создать виртуальную машину чтобы использовать андроид студио на ней?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Попробуй создать виртуальный игровой. рублей 300 для теста хватит. Выбирай те где есть услуга сохранения твоей машины и свобода с установкой приложений. Если понравиться то оптом час где-то полтиник будет стоить.
    Но мое имхо получишь печатную машинку. Пробросить USB порты на нее наверное не получиться.
    Если только еще дополнительно замитить впнку, чтобы отладку по tcp поднять.
    Но если комп будет использоваться хотя бы 4 часа в день за 9 мясяцев заплатишь цену б/у ноута, который тянет студию
    Ответ написан
    Комментировать
  • Почему перебои в приложении?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Режим телепата сегодня хромает.
    Интуиция подсказывает, что вы пытаетесь сделать splach заставку.
    Но вот на том, что вы написали в коде она пасует.
    Надеюсь Вы читали про официальное апи https://developer.android.com/develop/ui/views/lau...

    Ну и очень интересно, что вы прописали в xmlках (манифесте, стиле и теме)
    А то может ошибка не в коде, а в метаданных.

    В общем по коду ошибке можно только сказать, что в теме пока не разобрались. И например стиль от диалогового окна навесили на полноэкранную активити.

    Или пытаетесь программно сменить тему/лайоут в неподходящем методе.
    Ответ написан
  • Как считать данные с файла который расположен во внешнем хранилище анроид java?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Сейчас проще самому скачать файл с сети, чем пройти модерацию с нужными пермишинами
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"
            tools:ignore="ScopedStorage" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="30"/>
        <application
    ...
            android:requestLegacyExternalStorage="true"
    Ответ написан
    Комментировать
  • Как получить полный доступ к файловой системе андроид?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Что придумать для таргет SDK выше 31 я не знаю. В андроидах до 11 и 12(в режиме совместимости) работал такой подход :
    <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
        <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    
        <application
    ....
            android:requestLegacyExternalStorage="true"
    ...
    >


    соответственно с динамическим получением пермишенов

    файлы и попдпапки получал через штатный File.listFiles()
    Ответ написан
  • Ошибка Task :app:mergeDebugNativeDebugMetadata NO-SOURCE, Task :app:checkDebugAarMetadata FAILED. Как исправить?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    По дубликатам классов могу подсказать. Лечиться добавлением implement platform.

    Мне этот способ подошёл при апгрейде до 34 апи.
    https://stackoverflow.com/questions/75263047/dupli...

    Попробуй сперва снизить таргет и компиле до 33 или 32.

    На счёт нет исходных кодов, в настройках проверь какие сдк студия скачала.
    Ответ написан
    Комментировать
  • Почему не открываются ссылки в android studio?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Самому это надо делать.
    Вешается свой контроллер.
    Если ссылка подходит под условие, то собираешь интернет для запуска телеграмма.
    Ответ написан
    Комментировать
  • Почему у меня в WebView (Android Studio) не открывается сайт, а печатается на белом экране?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    До того как вкручивать самопальные рекламные сети . Обязательно ознакомиться с соглашением плея с разработтчиками и правилами стора. Иначе ваше первое приложение станет и концом (до вечного бана)

    Теперь подробнее.
    Сплеш активити (ваш лоад) - открывающий произвольный сайт .
    Плей очень не любит приложения суть которых сводиться к .lnk файлу
    смотрим строку

    binding.webView.loadUrl("$domen/?packageid=$packageName&usserid=$uuid&getz=Europe/Moscow&getr=utm_source=google-play&utm_medium=organic")

    офигительные уши какой-то рекламной сети сомнительного качества

    В выходные дни ловили банерные сети на сливе мобильного трафа на платные финиши.
    Если

    val database = Firebase.database("https://test-apk-1-fa3be-default-rtdb.firebaseio.com")

    это не поднятый вами инстан, то вероятнее левак лезет от них.
    Если на целевом сайте, есть подключение js со сторонних сайтов, то под подозрением они.

    Вы ниразу не проверили пришедшие данные на валидность.
    у вас там и нул может проскочить, и что станно домен должен начинаться с https:// и вы заклыдваетесь , что слеша в конце не будет и т.д.

    Далее . Работать на основном потоке с внешними вещами не есть гуд, так как можно словить ANR. А так время холодного/горячего запуска будет велико.
    Ответ написан
    Комментировать
  • В чём проблема работы данного кода?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Жмем Ctrl+4 и читаем ошибку. Постепенно осваиваем работу с логкат, запуск в отладочном режиме (паучок)
    учимся находить сообщение об ошибках в логкат.

    Пример вида экрана после аккорда (ctrl/Cmd + 4)
    6422070f5a35d002328668.png

    На моем примере ошибка закончилось место . Что-то надо стереть или пересоздать виртуалку с большим местом, а не по минимуму
    Ответ написан
    Комментировать
  • Можно ли реализовать vpn в приложении на android studio?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    не заметно для пользователя нельзя. просто ваше приложение в таком случае будет два в одном.
    впн клиент и собственно ваше. Надеюсь помните как в первый раз впн клиенту даются права.
    Пользователя отправлют в системные настройки, где он ручками должен сам разрешить приложению
    работу в качестве впн службы.
    И вопрос пока работает ваше приложение Вы будете пропускать через себя весь трафик ? иначе все месседжеры и почтовые клиенту у юзеров отваляться. Увы но фишки умной маршрутизации (ваш сайт через впн, а остальное на прямое) не получиться сделать
    Ответ написан
    1 комментарий
  • Где хранить проекты Android Studio?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Хранить проекты нужно в репозиториях.
    Для максимального быстродействия все должно быть на ссд.
    Когда проект не требуется, удаляете с ssd.

    Свой HDD можете использовать в дополнение к внешнему хостингу в режиме зеркала.
    В общем ваш HDD винт для архивов.
    Ответ написан
    Комментировать
  • Как выяснить причину ошибки "database disk image is malformed" в android?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988

    Скопировал эту БД в ассеты, весьма успешно подключился к ней, считал и отобразил на экране.

    В реальности вы использовали prepolation (заполнение начальных данных), а не подключились к базе.
    Вы же откуда копировали куски кода. Так вот там перенос данных в созданную на телефоне базу данных.

    После этого добавил пару полей, изменил названия и добавил чуть больше данных.

    Это действие должно сопровождаться повышением номера информационной схемы и написанием миграции с обной версии в новую.

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

    А Вам как разработчику тогда потребуется полностью удалять приложение с телефона и ставить на чистую повторно. В конце отладки поставить предыдущий релиз и проверить, что миграция отработала правильно (ну а до первого (еще не опубликованного) имхо лишнее).
    З.ы. еще эмулятор может грузиться с записанного снапшота, где сохранилось состояние с установленной прошлой версией.
    Ответ написан
  • Как прикрепить и отправить файл через SMTP в android приложении?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Вам нужно именно через smtp и самостоятельно приложением ?
    Открытых релеев почти не осталось. А если найдете, то они в спам листах.

    Если нужно выслать файл, то самый простой способ сделать это через намерение
    "Поделиться" . Почта и все мессенджеры умеют обрабатывать
    https://developer.android.com/training/sharing/send
    Минус способа в том, что отпользователя будет требоваться сделать еще несколько кликов в других приложениях.

    Если очень хочется автоматом, то подымайте свой smtp и реализуйте отсылку. Но это оверхед.
    проще поднять на своем серваке апи
    Ответ написан
    Комментировать
  • Ошибка при передачи данных из активности в фрагмент DrawerLayout?

    402d
    @402d
    начинал с бейсика на УКНЦ в 1988
    Сейчас есть отличный
    https://developer.android.com/guide/navigation/nav...

    А по старинке, когда мне нужно было ручками добавлять фрагмент с предустановленным аргументом, я сделал так

    fragment = TxtFragment.newInstanceWithUri(uri);
    fragmentManager.beginTransaction().replace(R.id.flContent, fragment).commit();

    Написал свой статический инстанс гет с параметром
    static public TxtFragment newInstanceWithUri(Parcelable param1) {
            TxtFragment fragment = new TxtFragment();
            fragment.parcelable = param1;
            return fragment;
        }
    Ответ написан
    Комментировать
  • В режиме дизайна для лайота не хватает памяти для отрисовки канвы. Где подкрутить аналогично манифесту?

    402d
    @402d Автор вопроса
    начинал с бейсика на УКНЦ в 1988
    <com.airbnb.lottie.LottieAnimationView
    ....
    app:lottie_renderMode="software"
    ....
    />

    после этого Chipmunk согласился рендерить активити с лотие анимацией во весь экран на макаир с м1
    Ответ написан
    Комментировать