Перейти к содержанию
Fire Monkey от А до Я
  • 0

Android SDK - с чем едят и как бороться?


UFO 007

Вопрос

Доброго всем времени суток!

Предисловие... Из ХЕ8 нажимаю Run(F9) - всё компилится, деплоится и инсталлится а в RedMi4Pro(Андрюха 6.0 - SDK-23) даже работает как по нотам. Но если провести те же манипуляции с Honor 8A(Андрюха 9.0 - SDK-28), то ни одной "моей" точки доступа не видит. Поставил 10.3.3 Рио - RedMi4Pro перестал видеть... Оказывается в ХЕ8 Tools\Option\Deployment\SDK Manager показывает версию SDK = 24.с копейками(почему-то на единичку завышает) а в Рио = 25.2.5  Запустил Studio\20.0\PlatformSDKs\android-sdk-windows\SDK Manager.exe, загрузил/установил все пакеты для вышеупомянутых версий (23 и 28) и началась война с Tools\Option\Deployment\SDK Manager - выбираю SDK API-Level = android-23 (для RedMi4Pro), 

andr_23.jpg.ca3e598addb5625c6c2f1743479d418f.jpg

нажимаю "Финиш" и вижу:

andr_25.jpg.992fba14587914625c086ef904a44d04.jpg

и выбирай-не выбирай SDK API-Level хоть 23, хоть 28 (хоть Android 32-bit, хоть Android 64-bit) - картина одна и та же (что чуть выше)... Правда - изначально скачивал в E:\Android\PlatformSDKs и поначалу подумал, что эта победень из-за "кривого" местоположения, но после копирования на С:\ (зазря только 50 с гаком гигов твердотельника изнасилил) картина "маслом" осталась. Была ещё одна гипотеза: мож lSuper чё-нить нужное ампутировал? - скачал ISO с таблЭткой, переустановил и всёрно: Х в Жо. Чё делать и как быть? (К-А-Р-А-У-Л!!!)

З.Ы. А как интерпретировать следующую строчку:

    <uses-sdk android:minSdkVersion="19" android:targetSdkVersion="28" />

?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

Как (на некоторых форумах) и водится: отвечаю сам (на 1-й вопрос) - едят SDK либо с Дэлфёй, либо с шарпеевским Ксамарином, либо же с Андрюхиной (нативной) студией (мож есть ещё какие ИДЕ - особо не вгрызался...). А вот со вторым вопросом засада: по ходу разборок дело доходило до "Формат Ц:\" и ресетап винды, но только потом я допетрил, что 25.2.5 - это не платформа SDK, а

sdk.png.faf49b73c4aefd86264c554ce17e0f1c.png

инструмент СДК и после некоторых манипуляций получил

2021-02-27_17-17-28.png.fd4db281db9a82dc4d5de671a2be5d75.png

но при компиляции под 24.4.1 получаю 344 ошибки, а вот под 25.2.5 всё компилится, деплоится и инсталлится, но коннекта с железяками нет - эт потому что 

2021-02-27_17-37-11.png.65cdcd49e689f33b8c7165a5318d0f50.png

а если для RedMi4Pro(Андрюха 6.0 = API/SDK 23) выбрать здесь android-23, то получаю:

[PAClient Error] Error: E2312 Unable to execute '"C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\build-tools\23.0.3\aapt.exe" package -f -M "E:\0_ESP_12\PAKUOS_xe10_x32\PAKUOS_10\AndroidManifest.xml" -F "E:\0_ESP_12\PAKUOS_xe10_x32\PAKUOS_10\bin\PAKUOS_10-unsigned.apk" -I "C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\platforms\android-28\android.jar" -S "E:\0_ESP_12\PAKUOS_xe10_x32\PAKUOS_10\res" -A "E:\0_ESP_12\PAKUOS_xe10_x32\PAKUOS_10\assets" "E:\0_ESP_12\PAKUOS_xe10_x32\PAKUOS_10\library" "E:\0_ESP_12\PAKUOS_xe10_x32\PAKUOS_10\classes"' (Error 1)

Копая глЫбже, обнаружил что если файл c:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\platforms\android-23\android.jar переобматюкать в android23.jar и копирнуть его из папки  android-28, то ошибка пропадает, но железяки так же не обнаруживаются (Connection Error)... Как это изврачевать?

Изменено пользователем UFO 007
Ссылка на комментарий
  • 0

И вААщПе - пипец: настраивал СДК из расчёта что РэдМи = х32-й, а Хонор = х64 так последний (после компиле, ..., инсталл-рун) сказал: 64-bit OS and device required... а РэдМи оказался тоже х64-м

honor.png.548a523b773763f31685212f9e03260c.png

jat-lx1- это и есть Honor, а как х32 он детектиться не хочет в отличии от РедМи:

redmi.png.dcf7ce1093a13590bb51a96ddfe65ef6.png

З.Ы. Где-то попадалось изречение: "... Дельфи - умирающий язык ..." - начинаю подозревать, что именно из-за этого (или аналогичного) геморроя народ "линяет" туда где попроще

Изменено пользователем UFO 007
Ссылка на комментарий
  • 0

Delphi никакого отношения к вашим SDK/NDK не имеет, она использует то что вы установили/ настроили.

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

Я начиная с XE5 просто ставил Android Studio и SDK / NDK, чтобы иметь возможность контролировать что где у меня стоит, и не лазить по папкам с путем длиной 2000 знаков.

Просто без AS нет SDK manager, и настройки делать неудобно. 

Потом выбираем те версии, которые нужны. (запоминаем, что там Delphi хотела поставить) и прописываем пути в настройках delphi

К последним версиям это стало работать практически в один клик.

Выбирать, какие устройства видны или нет, тоже делфи ни при чем. Она все делает через ADB. Если ADB не видит девайс, то ни одна другая программа не увидит тоже. Для решения этой проблемы тоже есть тема на форуме, где правится sys - файл с описаниями доступных VendorId / ProductId в стандартном драйвере Googel ADB

Ссылка на комментарий
  • 0
В 28.02.2021 в 14:46, krapotkin сказал:

Просто без AS нет SDK manager

А как на счёт c:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-sdk-windows\SDK Manager.exe?

 

В 28.02.2021 в 14:46, krapotkin сказал:

предлагает установить кое-что, с чем точно умеет работать

Когда, где и как?... Переустановить - не вопрос: главное - отловить этот момент.

 

В 28.02.2021 в 14:46, krapotkin сказал:

(запоминаем, что там Delphi хотела поставить)

Установить AS - тоже не вопрос: главное - понять что именно она "... хотела поставить ..."

Спс.

Ссылка на комментарий
  • 0

delphi при установке предлагает скачать и поставить версии SDK и NDK, я всегда отказываюсь, но записываю что за версии, чтобы потом поставить самому

а если самому ставить то либо они сейчас обрезанные какие-то, либо полные вместе c AS

Ссылка на комментарий
  • 0
13 часов назад, krapotkin сказал:

скачать и поставить

Глубоко сУмЛеваюсь (на счёт скачать) - это в .7z(ip) архивах стандартной комплектации идёт... А на счёт "... записываю ..." - эт только в долгом и нудном ISO может отражается, а lSuper их не подписывает... Скачал и поставил AS, но там только СДК-30 (Адрюха-11)... Надо разбираться как через AS СДК-23 выкопать...

Ссылка на комментарий
  • 0
14 часов назад, krapotkin сказал:

/NDK тех версий, которые нужны нам

А вот отсюда поподробней... Нашёл только NDK (Side by side) версия 22.0.7026061 (revision: 22.0.7026061) - щас качается... А вообще-то чуть ранее наяндексил android-ndk-r22-windows-x86_64.zip (с сайта разработчика, а r23 - пока beta) - разница какая-нить есть? = нету: AS качает тот же zip... И где бы посмотреть табличку соответствия СДКтакой-то = НДКтакой-то? Потому что разница между android-23 скачанным Delphi и AS СДК-манагерами составляет всего-то 1 файл (красный):wcmd.png.0de29ece72c928e1b98892bcc8d31c3a.png

и как результат - разницы нет абсолютно никакой откуда я прописываю в Тулс\Опшенс\Деплоймент\СДК Манагер... А вот про таблицу соответствия спросил я не зря: если компилить нативной для ХЕ8 НДК-r9c (СДК - соответственно: 23, а не дефолтным 21), то (тут уже прогресс) всё пучком и РедМи даже "видит" железяки - правда подключиться не может. А если прописать НДК-22, то получаю Errors 1053(шт) с сообщением:

[DCC Error] E2597 C:\Program Files (x86)\Embarcadero\Studio\16.0\PlatformSDKs\android-ndk-r9c\toolchains\arm-linux-androideabi-4.8\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: error: cannot find -lgnustl_static
  E:\0_ESP_12\PAKUOS_xe8\Android\Debug\Grijjy.ErrorReporting.o:Grijjy.ErrorReporting:function Grijjy::Errorreporting::cxa_demangle(char const*, char*, NativeInt, int&): error: undefined reference to '__cxa_demangle'
[DCC Fatal Error] F2588 Linker error code: 1 ($00000001)

Как со всем этим разобраться? Заранее благодарен

и

З.Ы. Уму не растяжимо: (из Предисловия) с месяц назад поставил ХЕ5 попробовал - получил (щас уже не помню какую) "палку в колёса", снёс, поставил ХЕ8, набросал (благодаря Вашим исходникам с ГитХаба) скелет, одел его в симпатичный пиджак и, не подозревая о существовании СДК/НДК, "компильнул" его в РедМи и всё работало ОК: и обнаруживал железяки, и подключался к ним, и рулил ими как задумывалось, но Хонор это же самое делать отказался... И давай копать в сторону СДК/НДК... Ну, а в порьбе за светлое будущее - чем дальше в лес: тем толще партизаны...

Ссылка на комментарий
  • 0

Ну для начала, на мобильных осях все течет так быстро, что для текущей разработки подходит только текущая IDE поэтому нет смысла в XE вообще. До Delphi 10.1 разработка была абсолютно условной - может взлетит, а может и нет. технология-то сырая. Так что не надо просто глупостями заниматься.

Про подключение телефона который не видится http://fire-monkey.ru/topic/6431-не-подключается-huawei/#comment-38150

 

Про версии NDK я тоже где-то тут пост писал. Не смог быстренько найти. Она очень важна особенно для старых Android. Я эксперименты ставил.

Xiaomi на Android 8 нормально работал а Samsung на Andoird 5.1 валился. Я просто подбором нашел нужную. В целом даже не очень долго. NDK  быстро качаются.

Из SDK берутся только SDK tools поэтому там не очень критично что за версия, лишь бы пути к нужным exe вписать в настройках делфи.

 

Ссылка на комментарий
  • 0

Прошу прощения за отлучку - "... дела, заботы, занятость...": точнее - Big Surом занимался...

В 27.02.2021 в 19:19, UFO 007 сказал:

коннекта с железяками нет

это "говорит" прога, а если глянуть /Настройки/ВайВай, то там подключено к нужной железяке - оказывается, что (грешу на то, что после Формата Ц) перестала работать конструкция:

function GetConnectivityManager: JConnectivityManager;
var
  ConnectivityServiceNative: JObject;
begin                       
  ConnectivityServiceNative := SharedActivityContext.getSystemService(TJContext.JavaClass.CONNECTIVITY_SERVICE);
  if not Assigned(ConnectivityServiceNative) then
    raise Exception.Create('Could not locate Connectivity Service');
  Result := TJConnectivityManager.Wrap((ConnectivityServiceNative as ILocalObject).GetObjectID);
  if not Assigned(Result) then
    raise Exception.Create('Нет доступа к менеджеру подключений');
end;

function IsWiFiConnected: Boolean;
var
  ConnectivityManager: JConnectivityManager;
  WiFiNetwork: JNetworkInfo;
begin
  ConnectivityManager := GetConnectivityManager;
  WiFiNetwork := ConnectivityManager.getNetworkInfo(TJConnectivityManager.JavaClass.TYPE_WIFI);
  Result := WiFiNetwork.IsConnected;
end;

Function TForm1.SendMsg(Msg: string): string;
Begin
  Try
    if not IsWiFiConnected then
    Begin
      Showmessage('Связь с Комплексом отсутствует'+#13+#10+Msg);
      scansensors:= true;
      btMonitorClick(SELF);
    End
    else
    Begin
      Form1.IdUDPClient1.SEnd(Msg, IndyTextEncoding(encIndyDefault)); //отправка сообщени¤ в сеть
      Result:= Form1.IdUDPClient1.ReceiveString(-1, IndyTextEncoding(encUTF8));
    End;
    if Msg<>'Get_Status' then
    MyShwMsg('От Комплекса принято: '+Result);
  except
    on E: EJNIException do
    Begin
      MyShwMsg('Произошла ошибка класса: '+e.ExceptionClassName+#13+#10+'с сообщением: '+e.Message);
    End;
  End;
End;

вернее - стала возвращать: "Связь с Комплексом отсутствует"... Что - по новой форматить/ресетапить винду?

В 02.03.2021 в 12:36, krapotkin сказал:

обрезанные какие-то, либо полные вместе c AS

пардон, конечно, но Ваша горячо любимая AS напрочь забыла скачать папку e:\0_Android\StudioSDK\ndk\22.0.7026061\platforms

В 04.03.2021 в 08:30, krapotkin сказал:

технология-то сырая

оно-то конечно, ежели что - так, ведь теперича - не то, что давеча... Однако под ХЕ8-ой всё взлетает в диапазоне SDK-16..SDK-30 (НДК - правда надо подбирать поближе, а то связка SDK-30/NDK-r10e (или наоборот [щас не помню] - SDK-16/NDK-r22) - не взлетела...) А что касабельно Рио (10.3.3) - тут засада ПОЛНАЯ:

Rio_Debug.png.79f7532390b34cc48f01d1528318036c.png

от точки останова до голубой стрелки - 2 нажатия F8: т. е. отладчик на строку цикла даже не заглядывает (бред какой-то) хоть Вайл, хоть Фор (к стати фиг. скобками заREMировано то, что под ХЕ8 (аж до Луны) летает...). А по сему - на счёт "сырой технологии" я с Вами не совсем (точнее: совсем не) согласен... Вот такой-вот сыр-бор... И чё делать? Ведь ХЕ8 под х64 компилить не умеет, а Рио - тупит... 

Ссылка на комментарий
  • 0

тут есть всего два варианта)

либо пользоваться тем что есть

либо нет

 

А отладчик в 10.3/4 и под Windows очень необычно себя ведет. Но вроде работает.

P.S.

Делфи и AS в очередной раз ставил и настраивал SDK/DK на чистом компе на прошлой неделе. Опять работает. Что-то я делаю не так.

 

Ссылка на комментарий
  • 0
6 часов назад, krapotkin сказал:

А отладчик в 10.3/4 и под Windows очень необычно себя ведет. Но вроде работает.

да отладчик-то - фиг ли с ним, но прога не работает - не видит точки доступа...

6 часов назад, krapotkin сказал:

либо нет

по-видимому другой альтернативы нет и придётся грызть ASовскую Яву

Ссылка на комментарий
  • 0
6 часов назад, UFO 007 сказал:

да отладчик-то - фиг ли с ним, но прога не работает - не видит точки доступа...

по-видимому другой альтернативы нет и придётся грызть ASовскую Яву

Есть еще например Kotlin, Flutter, Xamarin. Не думали в их сторону посмотреть?

Ссылка на комментарий
  • 0
В 09.04.2021 в 04:05, qz5 сказал:

... Xamarin ...

... вместе с AS на предмет редактора формы Дэлфе и в подмётки не годятся... Да и компилит/деплоит/инсталлит Дэлфя уж по сравнением с Хамарином вдвое (если не втрое) быстрее.

Изменено пользователем UFO 007
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...