Подтвердить что ты не робот

Игра libgdx на некоторых устройствах

Сразу после запуска приложения мое приложение отключает сообщение об ошибке на устройстве. Это происходит только на Samsung Note 1 (по крайней мере, не может протестировать на всех устройствах), но не на Motorola Moto G или Galaxy s4mini. Единственный намек, который я получаю, - в отладчике. Я вставил его ниже. Что именно происходит и почему он падает только на некоторых устройствах?

Изменить: он также возвращается в приложение из меню "Запуск приложений". В примечании 1 установлен CyanogenMod. Возможно, это имеет какое-то отношение к сбою.

Edit2: другое наблюдение: примечание 1 выделяет только половину памяти в качестве двух других устройств. Это связано с крахом?

01-05 17:00:16.212 13486-13513/com.mygdx.myGame.android D/dalvikvm: Trying to load lib /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58
    01-05 17:00:16.222 13486-13513/com.mygdx.myGame.android D/dalvikvm: Added shared lib /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58
    01-05 17:00:16.222 13486-13513/com.mygdx.myGame.android D/dalvikvm: No JNI_OnLoad found in /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58, skipping init
4b9b3361

Ответ 1

Функция "JNI_OnLoad" не является обязательной для приложения для Android. Это даже не ошибка. Ваша проблема связана с другой частью вашего кода. Даже если вы не предоставили эту функцию, ваша программа должна работать нормально.

Ссылки на JNI_OnLoad, которые могут быть полезны - Ссылка 1 | Ссылка 2 | Ссылка 3

Существует способ исправления, хотя -

Попробуйте использовать ndk-gdb, чтобы исправить его.

Ссылки для ndk-gdb - developer.android.com | fooobar.com/questions/147014/...

У меня есть эта проблема, как и большинство проектов, над которыми я работал. Это ничего не связано с сбоем приложения Android.

В вашем приложении есть что-то еще. Некоторые советы по рассмотрению, которые помогут вам отлаживать -

  • Проверьте Playstore (если он находится в playstore) для журналов (какая именно ошибка). Они дают трассировку стека, которая помогает отлаживать.

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

  • У меня был такой опыт, и его САМОЕ ВРЕМЯ из-за изменения API. Я имею в виду, что API-интерфейсы изменились бы с одной версии Android на другую (Kitkat to Lollipop - есть много изменений!) Проверьте это один раз. Из-за этого у большинства моих приложений было много проблем.

  • Некоторые мобильные устройства строги, когда речь заходит о транзакциях DB (sqlite или о том, что вы используете на телефоне). Я имею в виду, что в одном из приложений, когда БД не была закрыта в конце всех транзакций, приложение заставляло Force закрываться на большинстве мобильных телефонов Samsung и HTC. Хотя он работал очень хорошо на большинстве других телефонов.

Надеюсь, что это поможет:) Счастливое кодирование!

Ответ 2

Примечание для себя: "Всегда использовать менеджер активов и текстурные атласы"

В ходе разработки я в конечном итоге заменил все текстуры атласами текстур и в сочетании с менеджером активов. Я не изменил никакой логики. Как-то приложение перестало рушиться. Не могу это объяснить, но я считаю, что менеджер активов и текстурные атласы сделали трюк.