sdl error android что делать

Проблемы Android SDL

Ситуация следующая.
Собрал готовый проект SDL для android.
Хочу переименовать, меняю org.libsdl.app на что-то своё, чтобы потом можно было распространять.
Меняю название везде где можно. Всё собирается, а потом падает как доходит до SDLActivity.nativeResume();
Вот что в лог пишет

P.S. В res/value/strings.xml предлагается вводить имя приложения. И оно и вправду меняется, на смартфоне будет так и подписанно. Но истинное название всё равно не поменяется? (делаю backup через Uninstaller этого приложения, вижу имя org.libsdl.app) Тогда его потом нельзя будет в google play выложить?

Может где-то не нашёл где надо переименовать?

Обычные проекты, собранные по шаблону удаётся переименовать переписав package и создав новую папку для Java файла, а SDL’овский не получается. Падает при вызове стартовой native функции.

P.S. ну я и дурак))) Ну там же в cpp файлах такие штуки, Java_org_libsdl_app_SDLActivity_nativeInit() вот и падает. надо их как-то переименовать

eyenie
Не знал что так можно, теперь буду знать на будущее

Подскажите ещё, пожалуйста
Почему, когда я закрываю приложение и включаю его снова, экран становится чёрным
В лог пишет «Old EGL Context doesnt work, trying with a new one»,
а потом много раз повторяет
«waitForCondition(LockCondition) timed out»
О каком старом контексте идёт речь, если приложение загружается абсолютно повторно с самого начала с метода onCreate()?
Как можно это исправить?

Источник

Ошибка: «Сбой инициализации SDL, причина: нет доступного видеоустройства» при запуске AVD

Эй, ребята, это убивает меня. Каждый раз, когда я пытаюсь запустить приложение для Android в Eclipse, я получаю сообщение об ошибке:

Я серьезно рассматриваю возможность перехода на 32-битную версию Ubuntu, но, похоже, из того, что я прочитал, другие люди могут заставить ее работать. Просто не я! Есть ли у кого-нибудь советы? Благодаря!

Вам нужно больше 32-битных библиотек. 😉

В Ubuntu / Debian выполните:

Я также получил ту же ошибку при запуске автоматических сборок на нашем сервере Jenkins. Я думаю, проблема заключается в том, что эмулятор должен разговаривать с дисплеем X. Если вы запускаете это на своей собственной машине, вы можете попробовать установить переменную среды DISPLAY в терминале, прежде чем пытаться запустить эмулятор. Что-то вроде:

Если вы запускаете это на безголовом сервере Jenkins, вам нужно запустить сеанс Xvnc во время сборки, чтобы предоставить X-сервер для эмулятора.

При запуске команды «эмулятор» с пользователем с недостаточными привилегиями я получаю «сбой инициализации SDL». Ex. Пользователь jenkins получает ошибку, но не root.

Перейдите в командную строку и запустите команду эмулятора с тем же пользователем, который запускает eclipse. Затем переключитесь на root и запустите команду эмулятора снова.

Если он работает с пользователем root, рассмотрите возможность установки и запуска eclipse как root
(Не рекомендуется, но я не знаю, как это сделать, это всего лишь обходной путь).

Источник

Santa Simplicita

Просто писать о простом — не так и просто…

Android+SDL: Будь мужиком, пиши на C!

Я люблю C.
Я любою джаву не меньше, но это совсем не то чувство первой любви, которое я испытываю к C.

Я никогда не работал с SDL, но мне кажется, что он очень удобен для написания игр. По крайней мере я бы купился на его кросс-платформенность. Тем более, что теперь в списке его платформ еще и Android.

Установка

Я использовал версию из репозитория (SDL 2.0):

Далее необходимо несколько изменить структуру папок, чтобы получился Android-проект.

1) Копируем папку SDL/android-project в, скажем, sdl-demo (это наша папка с SDL проектом)
2) Копируем саму папку SDL в sdl-demo/jni (получаем sdl-demo/jni/SDL)
3) Редактируем jni/src/Android.mk, заменив YourSourceHere.c на список файлов вашего проекта (для простоты — только main.c)
4) Создадим этот самый main.c (путь к нему: sdl-demo/jni/src/main.c).
5) Теперь native-часть нашего проекта должна собираться.

Вот как это было у меня:

Доработать напильником

И хотя libSDL готова, этого еще недостаточно чтобы заставить ее работать под Android. Дело в том, что SDL для Android — это кружево из native-функций, и все они вызываются из Java-класса SDLActivity (см. sdl-demo/src/org/libsdl/app/SDLActivity.java).

Так вот, общая схема работы такая: запустить отдельный поток, а в нем SDL_main().
А после выхода из SDL_main().. не делать ничего. Хотя, логично было бы завершить Activity.

Это можно сделать руками. В просто случае это runOnUiThread()+finish(). Но я сделал через статические методы, по аналогии с COMMAND_CHANGE_TITLE:

Теперь можно обновить проект, если надо, и собрать его целиком:

Пример

Теперь вы можете писать приложения на SDL в main.c. Вот что получилось у меня:

Данный пример я по кускам спёр в разных уголках интернета, но в целом он понятен: создали окно (640х480 — это логические размеры, физические берутся из onSurfaceChanged()). Потом делаем рендерер, и загружаем текстуру. Текстура загружается из «assets/data/test.bmp».

Затем в цикле рисуем текстуру с помощью рендерера, и ждем следующего события. Особым образом обрабатываем нажание на кнопку «Back» — завершаем наш цикл. А потом чистим все ресурсы.

Итоги

Собираем, запускаем. На телефоне выглядит примерно так:

SDL для Android: наш hello world

Теперь можно учить SDL и писать игры. Хотя путь еще долгий — хочется SDL_ttf, SDL_image, чтобы работать с комфортом. Но это уже совсем другая история.

Кстати, overhead от использования SDL ни много ни мало — 200-300 Кб.

Все исходники (около 6 мегабайт, SDL много весит, и так удалил тесты и папку контроля версий): https://rapidshare.com/files/4157028483/sdl-android.tar.gz
Лучше, пожалуй, какой-то скрипт для развертывания SDL-проекта написать.

UPD: Ссылка на rapidshare безнадежно устарела. Сделал заново по инструкциям для свежего SDL: https://dl.dropboxusercontent.com/u/5689099/sdl-demo.tar.gz

Share this:

Понравилось это:

Похожее

16 comments on “ Android+SDL: Будь мужиком, пиши на C! ”

Спасибо за подробный разбор.

спасибо, а проект можешь целиком выложить?

Залил на rapidshare (см. ссылку внизу поста). Enjoy!

о, оперативно, спасибо.

ты не в курсе, как быть со старыми функциями SDL_SetVideoMode, SDL_DisplayFormat, SDL_Flip, в новой версии их нет, есть какие-то замены или как?

Посмотри в SDL/src/SDL_compat.c и SDL/include/SDL_compat.h в исходниках с сайта: http://www.libsdl.org/tmp/SDL-2.0.tar.gz

А ты в курсе как грузится линукс(Android) в SMP multicore? Т.е. с чего он стартует (0-е ядро?) и в каком месте и как начинает использовать остальные ядра?

Ой. Чё-то не заметил сразу коммент, сорри.
Ну вкратце загрузка с SMP для интела описана тут — http://tldp.org/HOWTO/Linux-i386-Boot-Code-HOWTO/smpboot.html
Вообще штука это аппаратно-зависимая, но в целом это все происходит внутри start_kernel() с вызовом smp_init().
Для армов с картинками тут немного есть — http://www.linux-arm.org/LinuxBootLoader/SMPBoot

скачал Ваш проект, ничего не менял, с помощью eclipse создал проект с готовых исходников, эмулятор андроид 4.03, запустил. в итоге на месте, где надо грузить изображение — крешится( не подскажете, в чем может быть дело?

Я совсем не знаком с android (так случилось, что надо протестировать sdl для него), и я не понимаю, как (КАК. ) картинка, которая находится в папке “assets/data/test.bmp”, но по отношению к коду main.c совсем не там — может подгружаться правильно? Это магия андроида?)

Наверное потому что андроид приложение — это zip-архив который на лету распаковывается и выполняется, то получается, что вся работа с файлами-ресурсами в составе приложений происходит особым образом.

Это можно увидеть в сорцах SDL: В SDL_android.c есть функиця Android_JNI_FileOpen, которая открывает файл не через fopen/open, а через java-классы типа AssetManager. Так вот SDL_rwops.c (в котором функции работы с файлами в SDL) использует как раз Android_JNI_FileOPen. Так что не удивляйтесь, все относительные пути начинаются от папки assets/.

ммм… пробовал запустить на реальном устройстве — тоже ничего не получилось. и кажется проблема как раз в загрузке изображения
LOG(«. created renderer»);
bitmapSurface = SDL_LoadBMP(«data/test.bmp»);
LOG(«. urrraa»);
до «ура» оно не доходит. ничего не понимаю…

Если интересно, то это проблема как рас 4го андроида. http://bugzilla.libsdl.org/show_bug.cgi?id=1500

Serg! Очень интересный блог и этот пост в частности! Не могу взять исходники с рапидшары — ссылка не работает… а хочется посмотреть(

ДА вот это настоящая кросплатформенность! Скопировал тупо код пример и хоть это мелочь но все работает! http://s017.radikal.ru/i427/1401/fe/894b437fc8fe.png

Спасибо, действительно нормальный пример кода.

Источник

Как исправить android ошибки во всех приложениях

Если вы обладатель смартфона с ОС Android, то при использовании устройства может возникнуть сбой, при котором появится сообщение android ошибки во всех приложениях. В таком случае, вы можете нажать ОК и ошибка перестанет возникать, но в некоторых случаях это не избавит от ошибки навсегда. В каких случаях возникает ошибка всех приложений на андроид?

Часть 1: Причины появления android ошибок во всех приложениях

Это может быть при сбое в ПО (программном обеспечении), при заражении вирусом, а также при неправильной установки ПЗУ или же из-за удаленного файла ОС. Также эта ошибка может привести к разряжению батареи и снижении производительности устройства.

В этой статье мы расскажем, как исправить такую проблему, как ошибка во всех приложений на андроид.

Часть 2: Как исправить android ошибки во всех приложениях

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

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Есть еще один способ перезагрузить устройство на базе Андроид.

Многие модели смартфонов производятся без съемной батареи, что не дает возможность извлечь аккумулятор из телефона и таким образом перезагрузить устройство. Чтобы выполнить принудительную перезагрузку устройства и исправить android ошибки в приложении, выполните следующие шаги:

Способ 2. Очистить данные и кэш приложений

Если перезагрузка смартфона не помогла исправить android ошибки во всех приложениях, то попробуйте выполнить очистку данных и кэща в приложениях.

Выберите «Очистить данные»;

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Выполнив все эти шаги, вы можете избавиться от android ошибки во всех приложениях. Также если эта ошибка возникает в каком-то конкретном приложении, вы можете войти в Google Play, удалить это приложение и заново его установить.

Способ 3. Исправить android ошибки во всех приложениях через Tenorshare ReiBoot for Android

На Android устройстве могут возникать различного рода ошибки, которые не исчезают при обычной перезагрузки телефона. Если вышеуказанные способы не помогли устранить android ошибки во всех приложениях, на помощь приходит программа, которая способна исправить сбой в андроиде быстро и легко – Tenorshare ReiBoot for Android.

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Запустите программу ReiBoot вашем ПК и нажмите «Исправление системы Android»;

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Потом нажмите “Исправить сейчас”;

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

После этого появляются некоторые информации, которые вам надо выполнить. Потом нажмите “Далее”;

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Далее загрузите пакет прошивки;

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

После выполнения загрузки вам надо выбрать опцию “Исправить сейчас”.

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Способ 4: Сброс настроек к заводским

Если вышеуказанные способы не помогли вам исправить завис самсенг, сделайте сброс данных. При сбросе данных из памяти удаляются все файлы, обнуляются настройки операционной системы, а вместе с этим удаляются ошибки. Вам надо заранее копировать ваши данные.

Шаг 2. Нажмите «Общие настройки». Если такого пункта нет, перейдите к следующему шагу.

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Шаг 3. Выберите пункт «Сброс». Также он может называться «Архивация и сброс», «Архивирование и сброс» или «Конфиденциальность».

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Шаг 4. Выберите «Сброс данных» или «Сброс устройства»

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Шаг 5. Выберите пункт «Сбросить», «Сброс устройства» или «Удалить все».

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

И ваше устройство перезагрузится и данные удалятся.

Резюме:

Если вдруг у вас возникла ошибка всех приложений на андроид «com android systemUI произошла ошибка», то попробуйте вышеуказанные методы. Любое неправильно выполненное самостоятельное действие в процессе восстановления устройства может привести к необратимым последствиям, включая поломку вашего смартфона. А Tenorshare ReiBoot for Android предлагает всего за пару кликов выполнить действия по устранению системных ошибок с пошаговыми инструкциями. Tenorshare ReiBoot for Android сможет помочь вам в исправлении более 50 системных проблем андроида. Скачайте и установите программу прямо сейчас, чтобы устранить ошибку «com android systemUI».

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

sdl error android что делать. Смотреть фото sdl error android что делать. Смотреть картинку sdl error android что делать. Картинка про sdl error android что делать. Фото sdl error android что делать

Обновление 2021-10-20 / Обновление для Android Проблемы и Решения

Источник

Подготовка SDL2-проекта для запуска на android

Всем привет. Сегодня мы посмотрим как подготовить проект с использованием библиотеки sdl2 для запуска игры на android.

Для начала надо скачать Android Studio, установить её и всё что требуется в этой среде для разработки. Например у меня сейчас Kde Neon, и в этой системе существует файл /etc/environment, такой же файл есть и в ubuntu. Там надо прописать такие переменные.

Также надо скачать NDK с официального сайта распаковать его в домашний каталог и переименовать в NDK. Далее нужно скачать библиотеку SDL2 с сайта libsdl.org. Чтобы использовать sdl2 для android, важно не компилировать его для компьютера, потому что тогда это не скомпилируется для android. Чтобы проект скомпилировался, надо создать проект в android studio, любой, чтобы принять лицензию, иначе при сборке SDL2 будет просить лицензию.

Чтобы считывать файлы в android из assets, нужно использовать функции SDL_RWops. Вот пример использования в коде по работе со шрифтом. В этом случае мы не может использовать FT_New_Face, а вместо этого будем использовать FT_New_Memory_Face, чтобы использовать уже считанные данные.

Также я создал файл заголовок для подключения SDL2 заголовков. NO_SDL_GLEXT нужен, чтобы компиляция прошла успешно для Android.

Итак проект готов, шейдеры готовы для Opengl Es 3.0. Теперь надо создать android-project. Для этого распаковываем архив SDL2. Заходим в build-scripts. И выполняем так.

Появится такое сообщение.

Переходим в com.xverizex.test. Заходим в com.xverizex.test/app/jni/src. Копируем свой проект игры. И меняем файл Android.mk, в моём случае это выглядит так.

Как вы может уже заметили, я подключаю ещё библиотеку Freetype2. Я нашел уже готовую на github для android, но она не работала, нужно было кое что поменять. Также создаем каталог app/src/main/assets. В него помещаем наши ресурсы ( шрифты, спрайты, 3d модельки ).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *