Я создаю простую игру для Android с помощью Delphi XE5. У меня есть несколько ресурсов, PNG и Jpegs, я хотел показать экран загрузки, пока моя программа загружает все ресурсы.XE5 Android TBitmap.LoadFromStream не работает внутри потока
Но я обнаружил, что в TBTmap.LoadFromFile или TBitmap.LoadFromStream содержится код внутри потока android, из-за чего приложение немедленно прекращает работу и возвращается в Launcher, в режиме отладки Delphi даже не поймает исключение. (Код отлично работает на Windows и без потока на Android)
Мне пришлось открыть лог-код, чтобы посмотреть, что происходит, я увидел нечто вроде «Ошибка создания контекста рисования».
Мой вопрос: есть ли способ сделать экран загрузки для Android с помощью Delphi XE5? Чтобы на экране прогресса отображалось изображение, загружаемое в память.
Я создал тестовый проект, чтобы изолировать проблему, вот результат. LoadFromFile - это нить 1. В журнале говорится, что поток фактически выполнялся, но потом были исключены исключения?
скриншот Logcat: Исходный код: http://www.pockhero.com/wp-content/uploads/2013/10/threadtest1.7z
Откуда взялось растровое изображение? Связано ли это с любыми элементами пользовательского интерфейса? –
Нет, ни один пользовательский интерфейс не вызывается в потоке, я даже создал тестовый проект, имеет только три строки кода. b: = TBitmap.Create; b.LoadFromFile (TPath.Combine (TPath.GetDocumentPath + 'koala.jpg)); b.Free; – Darkerstar
'TPath.Combine (TPath.GetDocumentPath + 'koala.jpg')' должен быть 'TPath.Combine (TPath.GetDocumentPath, 'koala.jpg')' вместо этого. –