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

Mazzay

Пользователи
  • Постов

    58
  • Зарегистрирован

  • Посещение

Весь контент Mazzay

  1. Ни разу не пользовал. Поизучаю… Без режима разработчика устройство пропадает из Target.
  2. ПК перезагружался уже многократно. Планшет — тоже. Стабильно тормозит на этапе «Installing». Приложение при этом не устанавливается. Стабильно именно на этих планшетах. Что-то, видимо, именно с ними. Но не могу понять, что.
  3. После компиляции и линковки выводит: «Deploying», «Stripping Symbol», «Packaging», «Singing», «Installing»… «Installing» висит бесконечно. Нажатие на «Cancel» выдаёт «Unable to create process: Operation canceled by user». Такое происходит на планшетах DIGMA Plane 7700B (их несколько). На остальных устройствах и на эмуляторах запускается нормально. Сам планшет подключен кабелем, в Project Manager в Target он виден и активен. Не пойму, куда копать, так как никаких ошибок не выдаётся, а просто не завершается этап «Installing».
  4. Фух! Вот уж воистину. Бьёшься-бьёшься — не получается. Спросишь в интернете — и наведут на решение. Всё, что GetShared… не работает. Android 5.1 без карты памяти не хочет сохранять туда файл. У меня по крайней мере. Но очередной просмотр доступных методов у TPath навёл меня на вот какой: GetPublicPath. Описание от Embarcadero у него следующее: http://docwiki.embarcadero.com/Libraries/Berlin/en/System.IOUtils.TPath.GetPublicPath Собственно, судя по описанию, то, что нужно. Пробую. Не работает. На эмуляторе GetPublicPath возвращает пустую строку. Из описания: Расстроился. Но на всякий случай попробовал на реальном устройстве под Android 5.1. И о, чудо! GetPublicPath возвращает «/storage/sdcard0/Android/data/com.<ХХХХ.myappname>/files» и установка apk оттуда через Intent замечательно работает. Проводник тоже видит эту папку и файлы в ней. На Android 4.2 тоже работает. Всем большое спасибо!
  5. Эмулятор Android 5.1 качает apk c компьютера-хоста. «Битость» фактически исключается. Но ошибку выдаёт. Смартфон под Android 4.2 успешно качает и устанавливает этот же apk и по воздуху.
  6. Спасибо! Очень дельный совет. Наверняка очень многие будут об это спотыкаться. Добавлю себе создание несуществующих папок на всякий случай. Но! Android 5.1 без внешней карты памяти не даёт мне создать ничего в путях из списка GetShared... К примеру, GetSharedDocumentPath возвращает «/storage/sdcard/Documents». Тот же «ES Проводник» не может ничего создать в папке «/storage/sdcard» и пишет «SDCard отключена». На 5.1 сохранение загруженного apk-файла у меня получается только в internal storage (4.2 позволяет сохранять куда угодно). Сохраняю в GetDocumentsPath (без …Shared…) и при запуске через Intent этого apk получаю «Ошибка при синтаксическом анализе пакета». (Сообщение «access/permission denied» что-то никак не могу повторить.) Такое сообщение и на 5.1, и на 4.2 (при запуске apk, сохранённого в internal storage). Если на 4.2 сохранить куда-нибудь в …Shared…, то этот же пакет замечательно устанавливается. Я думаю, что установщик пытается открыть apk для анализа, но не может и выдаёт сообщение об ошибке при анализе.
  7. Моё приложение при запуске проверяет номер версии и при необходимости обновляется. Обновляется следующим образом: грузит с сервера и сохраняет на устройстве apk-пакет и запускает его на выполнение. Всё замечательно работало до перехода на Android 5.1. Загрузка пакета осуществляется в папку, возвращаемую GetSharedDownloadsPath. Запуск обновления производится следующим кодом: _di_JIntent Intent; _di_Jnet_Uri oUri; _di_JFile oPath; _di_JFile oFile; oPath = TJFile::JavaClass->init(StringToJString(fPath)); // fPath = System::Ioutils::TPath::GetSharedDownloadsPath(); oFile = TJFile::JavaClass->init(oPath, StringToJString(fFile)); // fFile = L"myapp.apk" oUri = TJnet_Uri::JavaClass->fromFile(oFile); Intent = TJIntent::JavaClass->init(TJIntent::JavaClass->ACTION_VIEW); Intent->setDataAndType(oUri, StringToJString(L"application/vnd.android.package-archive")); Intent->setFlags(TJIntent::JavaClass->FLAG_ACTIVITY_NEW_TASK); SharedActivity()->startActivity(Intent); Application->Terminate(); На Android 5.1 на выполнении этого кода получаю сообщение "... Access denied." Не помню, где, нарыл следующее: Как установить для файла режим Readable, чтобы его могло читать другое приложение? P.S. Внешней карты памяти на устройстве нет. Если её вставить, то работает, ибо с ней GetSharedDownloadsPath возвращает путь именно на внешней карте. Втыкание внешней карты пока рассматривается только как временный костыль, но он не очень интересен, так как устройств, на которых работает приложение 18 штук — не хочется покупать 18 карточек.
×
×
  • Создать...