-
Постов
842 -
Зарегистрирован
-
Победитель дней
123
Сообщения, опубликованные Andrey Efimov
-
-
18 минут назад, x11 сказал:
HTC One Max.
При старте monitor.bat появляется на мгновение окно консоли и закрывается. Разбираюсь, что не так.
Так и должно быть, окно появляется и сразу исчезает.
16 минут назад, x11 сказал:запустил
"C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows\tools\lib\monitor-x86_64\monitor.exe"
выдало ошибку и приказало смотреть лог.
Попробуйте "Запустить от имени Администратора".Увидел новое сообщение.Второй вариант - проверим через ADB:
1) Заходим в "\SDK\platform-tools", зажимаем Shift и в пустом месте щёлкаем правой кнопкой мышки, выбираем пункт "Открыть окно команд" (или запустите CMD любым другим способом, но обязательно перейдите в эту директорию)
2) Подключаем девайс, в CMD пишем "adb devices" и смотрим какой будет ответ
АП.
7 минут назад, x11 сказал:Диспетчер задач показывает кучу запущенных мониторов.
Запуск от с повышением привилегий не помог. Перезагружу ПК.
Да, нужно всё завершить.
p.s. Посмотрел тему по вашему девайсу. Похоже htc в своём репертуаре....
-
1 час назад, x11 сказал:
Кто-то удалил мои вопросы. Зачем? Верните на место, пожалуйста.
Все 5 пунктов выполнил. Среда не видит смартфон.
Ваши вопросы не удалили, а переместили в вашу же тему, там где они более уместны. Т.к. у вас две темы: одна про отладку, другая про СДК, то и мешать их не надо. Ваши вопросы были про СДК, я перенёс их в тему про СДК.
Теперь вопросы по теме:
- Какая модель девайса?
- Android Device Monitor (\SDK\tools\monitor.bat) видит ваш девайс?
-
7 минут назад, x11 сказал:
У меня такой вопрос. Обязательно ли установленная версия SDK должна соответствовать версии Андроида на смартфоне?
Т.е. на смартфоне 5.0.1, т.е. и в Дельфи должна быть активная версия API 21? Или как?
Не обязательно. Можно использовать SDK идущее в комплекте со студией.
6 минут назад, x11 сказал:Да, читал.
В том-то и дело.
Что я хочу установить 21, а получается, что устанавливаю 25?
Тогда КАК установить/добавить 21?
Вот тут выберите версию
-
Эм... вы читали ошибку?
Студия дала вам чёткий ответ "Такой СДК уже существует", да и на первом скрине видно, что у вас уже добавлен какой-то "Android SDK 25...", видимо, это он и есть.
-
Вот вам инструкция почти на все случаи подключения девайса для отладки:
1) Запускаем SDK Manager и устанавливаем Google USB Driver (категория Extras)
2) Идём на 4pda.ru/forum/ тема с прошивками для вашей модели, в шапке качаем драйвера и устанавливаем
3) На устройстве включаем режим Разработчика и ставим галочку "Отладка USB"
4) Подключаем устройство и ждём пока полностью подхватятся драйвера (в новых версиях Андроида: на устройстве выскочит табличка, дайте положительный ответ)
5) Заходим в Студию и запускаем приложение через F9 (для отладки) или Shift+Ctrl+F9(без отладки)
-
Ссылки на сторонний ресурс я удалю.
По теме, ваше приложение уже опубликовано, вы же скрин скидывали, там чётко написано. Наведите мышку на кружок рядом с надписью "Опубликовано" и увидите ссылку на ваше приложение.
На форуме есть специальный раздел для публикации своих приложений: Приложения, написанные с использованием FireMonkey. Создайте там тему для своего приложения, вставьте ссылку ведущую на Google Play, описание, по желанию, скрины.
-
Вы заполнили описание и т.п.. Что вам осталось сделать?
Внедрить рабочую версию проекта, проще говоря, залить apk файл в консоль. В конце появится кнопка "Опубликовать", нажмёте её и останется подождать, пока приложение пройдёт модерацию.
Если уже залили, то зайдите в меню Управление рабочей версией и посмотрите, что пишет консоль, возможно кнопка находится именно там.
О том как добавлять приложение в маркет я писал несколько статей (правда дизайн на скринах старый, но суть не изменилась):
-
11 минуту назад, Anatoliy сказал:
Поставил
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" />
Закинул apk на хостинг. Скачал на телефон. При попытке установить, пишет будет поиск аккаунтов на устройстве и интернет. Следовательно GET_ACCOUNTS сохранился...
Поставил
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
Все нормально. Пишет что нужен только интернет.
Темень в этом вопросе....
P.S.
Сейчас попробую все по новой. Может где-то ошибся...
Вопросы:
На какой версии Андроида проверяете?
Вы точно удалили разрешение из манифеста? Проверьте итоговый манифест.
Чуть позже, сам смогу проверить на разных версиях Андроид.
Можете приложить файл манифеста из папки Проект/Android/Debug или Realese/.
Ап.
P.s. ок, вижу, вопрос решился.
-
-
8 минут назад, Anatoliy сказал:
А на сколько критично будет если оставить 14 во втором пункте?
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" />
Вероятно, почти очевидно, что на устройствах с АПИ 14 будет вываливаться ошибка о том, что нет необходимого разрешения. Прочитайте 3 последних сообщения, где я привёл примеры касательно пушей.
Ну и от себя могу добавить, зачем вам поддерживать столь древние устройства? Если верить Platform Versions, таких устройств осталось всего 0.7%. Сейчас можно смело ставить minSdkVersion = 16.
-
7 минут назад, Ingalime сказал:
Если я оставлю разрешение GET_ACCOUNTS, то гугл консоль его обнаружит и заставит сочинять политику конфиденциальности. Правильно?
Судя по сообщению ТС - ответ Да.
7 минут назад, Ingalime сказал:Как вычленить это разрешение напрочь? Пуст пострадают некоторые устройства.
Тогда должно помочь:
21 час назад, Andrey Efimov сказал:Как убрать разрешение:
- Собираем приложение (Build)
- Открываем "Проект\AndroidManifest.template.xml", выставляем минимальную и целевую версию СДК.
- Делаем Clear проекта и снова Собираем приложение (Build)
- Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем и удаляем строку с разрешением, сохраняем.
- Делаем деплой и заливаем в консоль.
Во втором пункте будет так:
<uses-sdk android:minSdkVersion="16" android:targetSdkVersion="16" /> В targetSdkVersion можете указать версию на которой тестируете разрабатываете приложение или оставить так, как я написал выше.
После этого, проверьте работу пушей на устройстве с Андроид 4.1.2 и выше.
-
Ну смотрите, если я правильно понял, то данное разрешение требуется до Андроид 4.0.4 (включительно). И учитывая тот факт, что вы хотите поддерживать максимальное количество устройств, то должен сработать такой способ (описанный в сообщении выше):
ЦитатаЕсли нужно оставить разрешение для старых версий АПИ, то можно сделать так:
- Собираем приложение (Build)
- Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем, и в строку с разрешением добавляем " android:maxSdkVersion="Версия АПИ" ", версию выбираем исходя из ответа на вопрос "на какой версии АПИ данное разрешение перестало требоваться?", сохраняем.
- Делаем деплой и заливаем в консоль.
Строка будет выглядеть так:
<uses-permission android:name="android.permission.GET_ACCOUNTS" android:maxSdkVersion="15" />
Разрешение будет запрашиваться на всех версиях до той (включительно), которую вы указали.
Но, опять же нужно протестировать приложение как минимум на версиях Андроид 4.0 - 4.1.2 и Андроид 4.4.2 и выше. Это очень важно сделать, т.к. поведение может отличаться от ожидаемого. (мне с пушами пока не особо доводилось связываться, в теории, изменение в манифесте должно помочь). Если проверите, то обязательно отпишитесь сюда о результатах.
-
10 часов назад, ENERGY сказал:
То ли это ночь на меня влияет, но я так и не понял для чего это указывают разработчики. Ведь Delphi указывает в манифесте 14 и 14, при этом программа работает от Android 4.0.1 до 7+ .
И кстати, эти параметры можно изменить только вручную редактируя манифест?
Да, на данный момент, только вручную.
Если смотреть поверхностно, то
android:minSdkVersion="14" android:targetSdkVersion="14"
означает:
1) Приложение может запускаться на версиях от 14 АПИ (minSdkVersion)
2) Приложение разработано для 14 АПИ (targetSdkVersion)
3) Приложение при установке на АПИ отличное от версии 14 (targetSdkVersion) будет работать в режиме совместимости. Как известно в Андроиде существует обратная совместимость версий, что несомненно является плюсом, иначе просто пришлось бы собирать приложение для каждой версии Андроида
4) Эти параметры используются в Google Play и всех версиях Андроида начиная с 4 АПИ (если мне не изменяет память...)
Т.о. если вы разрабатываете и тестируете на версии Андроид 6.0 (23 АПИ), т.е. вы используете новые методы АПИ и т.п., и при этом хотите оставить поддержку старых версий Андроида, вам необходимо:
1) Указать параметр "targetSdkVersion" равный 23 АПИ и разработать приложение в соответствии с требованиями 23 АПИ
2) Решить насколько старые устройства должны поддерживаться вашим приложением, допустим мы решили, что это будут устройства с Андроид 4.1.2 (16 АПИ) на борту, значит вам необходимо:
- указать параметр minSdkVersion равный 16 АПИ
- сделать проверку версии АПИ для всех методов из нового АПИ, в данном случае 23
3) И самое главное, протестировать приложение на Андроид 4.1.2 (16 АПИ) и Андроид 6.0 (23 АПИ)
Про совместимость версий, раньше было написано в Гугл документации, сейчас не знаю... В некоторых моментах, поведение приложения будет разным. Например, при запросе разрешений в АПИ 19 и АПИ 23 (при вот таких параметрах android:minSdkVersion="16" android:targetSdkVersion="23"), обо всём этом написано в справке гугла.
p.s. Из трёх сообщений можно статью уже запилить...
-
Минимальная версия СДК - это версия на которой приложение может работать, т.к. поддерживает его (в основном касается запросов в АПИ)
Целевая версия СДК - это версия на которой приложение разрабатывалось/тестировалось.
Например: android:minSdkVersion="14" android:targetSdkVersion="23".
Приложение разрабатывалось для 23 АПИ, но будет работать и на 14. Тут важно предусмотреть ситуации, когда методы из 23 АПИ не будут работать на 14 АПИ, т.е. перед тем как запрашивать метод из АПИ, нужно сделать проверку СДК/АПИ на устройстве, иначе, в большинстве случаев, вывалится ошибка.
Пример:
Метод is5GHzBandSupported, как видим, добавлен в 21 АПИ, значит не будет работать в АПИ ниже этой версии.
В коде мы напишем что-то подобное:
if (TJBuild_VERSION.JavaClass.SDK_INT >= 21) then begin Запрос метода is5GHzBandSupported end;
p.s. Не успел отправить ответ, сообщение уже удалили...
-
В 06.07.2017 в 15:19, Anatoliy сказал:
Научите как настраивать политику конфиденциальности
Вероятно, вам требуется добавить ссылку на политику конфиденциальности в Консоли разработчика.
Делается это так:
1) Заходим в консоль разработчика
2) Выбираем приложение
3) В меню открываем вкладку "Настройка страницы приложения" и жмём по "Описание приложения"
4) Спускаемся в самый низ, там будет раздел "Политика конфиденциальности", вставляем ссылку на страничку/документ
5) Сохраняем и публикуем новые настройки
Скрытый текстПро GET_ACCOUNTS.
Как убрать разрешение:
- Собираем приложение (Build)
- Открываем "Проект\AndroidManifest.template.xml", выставляем минимальную и целевую версию СДК.
- Делаем Clear проекта и снова Собираем приложение (Build)
- Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем и удаляем строку с разрешением, сохраняем.
- Делаем деплой и заливаем в консоль.
Если нужно оставить разрешение для старых версий АПИ, то можно сделать так:
- Собираем приложение (Build)
- Находим файл "Проект\Android\Debug\AndroidManifest.xml", открываем, и в строку с разрешением добавляем " android:maxSdkVersion="Версия АПИ" ", версию выбираем исходя из ответа на вопрос "на какой версии АПИ данное разрешение перестало требоваться?", сохраняем.
- Делаем деплой и заливаем в консоль.
Разрешение будет запрашиваться на всех версиях до той (включительно), которую вы указали.
Если вам необходимо запрашивать разрешение на версиях АПИ 23 и выше, то необходимо добавить специальный метод в ваше приложение, я максимально упростил эту задачу. Статья с описанием: Добавляем метод onRequestPermissionsResult в приложение. Либа для скачивания:CustomActivityAndListener
p.s. Надеюсь, правильно понял ваши вопросы...
-
-
Если дело в скачивании, то вынести загрузку картинок в отдельный поток. В Берлине у компонента NetHTTPClient есть свойство Asynchronous (Using an HTTP Client - Making Requests Asynchronous) для того чтобы форма/приложение не подвисало пока что-то загружается из инета.
-
В 28.06.2017 в 07:47, MikeWuzHere сказал:
Пытаюсь подсунуть в библиотеки сгенерированный java файл,
В Java файле всё правильно прописали?
В 28.06.2017 в 07:47, MikeWuzHere сказал:.dex решил не добавлять ибо в инструкции написано что так можно.
Можно, но тогда нужно добавить jar-файл.
В 28.06.2017 в 12:36, MikeWuzHere сказал:Кстати можно ли использовать classes.dex из вашего семпла?
В вашем случае - нет.
1 час назад, MikeWuzHere сказал:На Tokyo приложение из блога
На Токио не проверялось. Статья написана для Seattle, но 100% работает на Berlin (только вчера реализовывал данную функцию в новом приложении), а вот Токио пока в топку.
-
-
Уже давно замечены проблемы Indy с SSL на Android, вроде как, даже сама Idera рекомендовала (пруф не дам, т.к. не помню где видел это) использовать новые TNetHTTPClient и TNetHTTPRequest.
Попробуйте использовать эти компоненты, с SSL работать умеют и асинхронные запросы умеют (т.е. не придётся создавать отдельный поток, достаточно изменить свойство компонента), и ещё куча всего.
Основная справка с примерами тут: Using an HTTP Client
-
Рекомендую вернуться на Berlin Upd2.
Tokyo вышла очень бажная, особенно в плане мобильной разработки. Юзать текущую версию себе дороже выйдет. Нужно дождаться как минимум Upd1, но я думаю лучше сразу Upd2 ждать.
-
-
Тема закрыта.
Учитесь пользоваться поиском, все вопросы уже обсуждались на форуме.
По вашей теме ответ тут (соседняя тема...): [TWebBrowser] [Android] Работа с локальными картинками и файлами
и ещё справка: FMX.WebBrowser.TWebBrowser
АП.
И вообще, вам уже предложили варианты открытия файла и даже объяснили их, в вашей же теме... Эта тема дубликат. http://fire-monkey.ru/topic/4252-как-запаковать-pdf-в-проект-и-как-потом-получить-к-нему-доступ/?do=findComment&comment=26896
-
Картинки сделаны правильно. Единственное, я бы попробовал придвинуть границы растягиваемых областей (зелёные области) прямо впритык к логотипу (как в примере ниже).
Скорее всего, проблема в том (это предположение!), что в студии нельзя добавить картинки для:
- xxhdpi (extra-extra-high) ~480dpi (scale 3)
- xxxhdpi (extra-extra-extra-high) ~640dpi (scale 4)
Nexus 5 вроде как имеет 480dpi, хотя в разных местах по разному пишут, где-то и 420dpi упоминается. Т.к. картинки нет, берётся самая подходящая из существующих, соответственно это картинка для xhdpi (scale 2) и растягивается.
Если это так, то:
- идеальное решение - добавить недостающие картинки и прописать их.
- возможный костыль - поиграться с параметром "Splash gravity"
Пример, о котором упоминал вначале:
Отладка на устройстве
в Отладка
Опубликовано · Изменено пользователем Andrey Efimov
АП
Ага, где-то косяк, вероятнее всего в драйверах/ПО HTC Sync (разбираться где именно косяк, удалить всё и заново устанавливать), на втором месте СДК, а точнее с пакетом "platform-tools" (тут как вариант, можно переустановить/обновить), версия API значения не имеет .
АП.
p.s. В теме про прошивку, у народа тоже такие проблемы возникают, как я и говорил "HTC в своём репертуаре..."