2013-05-22 3 views
9

Я разработал приложение Libgdx и протестировал его на своем Samsung Galaxy S3 (4.1.2), где он отлично работает. Я попытался проверить его на Galaxy Grand (4.1.2), но это не удалось. В LogCat, я обнаружил следующее:GdxRuntimeException на Android: не удалось загрузить общую библиотеку 'gdx' для цели

caused by com.badlogic.gdx.utils.GdxRuntimeException couldn't load shared library 'gdx' for target: Linux, 32-bit 

Это произошло при смене устройства только поэтому любая идея, что является причиной ?!

Полный LogCat:

05-22 20:25:01.745: E/AndroidRuntime(12725): FATAL EXCEPTION: main 
05-22 20:25:01.745: E/AndroidRuntime(12725): java.lang.ExceptionInInitializerError 
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.Class.newInstanceImpl(Native Method) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.Class.newInstance(Class.java:1319) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.Instrumentation.newActivity(Instrumentation.java:1068) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2025) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2135) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.access$700(ActivityThread.java:140) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1237) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.os.Looper.loop(Looper.java:137) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at android.app.ActivityThread.main(ActivityThread.java:4935) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.reflect.Method.invokeNative(Native Method) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.reflect.Method.invoke(Method.java:511) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at dalvik.system.NativeStart.main(Native Method) 
05-22 20:25:01.745: E/AndroidRuntime(12725): Caused by: com.badlogic.gdx.utils.GdxRuntimeException: Couldn't load shared library 'gdx' for target: Linux, 32-bit 
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:104) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.utils.GdxNativesLoader.load(GdxNativesLoader.java:34) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.backends.android.AndroidApplication.<clinit>(AndroidApplication.java:61) 
05-22 20:25:01.745: E/AndroidRuntime(12725): ... 15 more 
05-22 20:25:01.745: E/AndroidRuntime(12725): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load gdx: findLibrary returned null 
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.Runtime.loadLibrary(Runtime.java:365) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at java.lang.System.loadLibrary(System.java:535) 
05-22 20:25:01.745: E/AndroidRuntime(12725): at com.badlogic.gdx.utils.SharedLibraryLoader.load(SharedLibraryLoader.java:100) 
05-22 20:25:01.745: E/AndroidRuntime(12725): ... 17 more 
+0

У вас есть полная трассировка стека с любыми исключениями? –

+0

Кроме того, какую версию libgdx вы используете? –

+0

Я добавил полный logcat – omarsafwany

ответ

2

Я понял, что был problem.It работал только на Samsung Galaxy S3 с самого начала с некоторыми C++ загружаемых файлов, и когда я редактировал некоторые из этих файлов, я не создавался с использованием ndk.Так при попытке тестирования на другом мобильном устройстве новые модификации не применялись. Я их построил, и приложение успешно работало.

5

я получил ту же самую ошибку, что и исходное сообщение, когда я пытался загрузить проекты, сгенерированные libGDX в Android Studio:

> "caused by com.badlogic.gdx.utils.GdxRuntimeException couldn't load 
> shared library 'gdx' for target: Linux, 32-bit" 

После небольшого исследования (в частности www.badlogicgames.com/forum/viewtopic ? .php е = 11 & т = 9097), я нашел этот отличный учебник по evilEntity, который показал, как импортировать libGDX проекты в Android Studio:

http://imgur.com/a/IBFIV.

Я не могу повторить урок дословно, как это текст и скриншоты, но после шаги позволили мне импортировать сгенерированные проекты только с изменениями, перечисленных в руководстве:

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

Также обратите внимание, что здесь я включаю этот ответ, поскольку это сообщение об ошибке, содержащееся в вопросе omarsafwany, было для меня ключевым моментом, а не конкретными обстоятельствами вокруг его проблемы. Надеюсь, все в порядке.

  1. проект Импорта:
    • Выберите верхнюю папку, содержащую все три сгенерированных проектов (общий, рабочий стол, Android)
    • Выберите "Создать proejct из существующих источников"
    • Переименуйте три библиотеки (LIBS = LibGDX-Desktop, libs1 = LibDGX-Android, libs2 = LibDGX-Shared)
    • Принять оставшиеся по умолчанию и нажать «Готово»
    • Все три проекта должны появиться i n ваш исследователь проекта.
  2. Экспорт разделяемая библиотека
    • правой кнопкой мыши общий модуль и выберите «Настройки Open Module»
    • Перейти к общему модулю и выберите «Экспорт» рядом с libgdx разделяемой библиотеки
    • Перейти к андроида модуль и добавьте общий модуль в качестве зависимости (щелкнув по зеленому +)
    • Перейдите на рабочий стол и добавьте общий модуль в качестве зависимости (нажав на зеленый +)
  3. Конфигурация
  4. Edit Android Run
    • переименовать андроида конфигурацию, добавляя "-android" к концу существующего имени
    • выберите "Показать диалог Chooser" в "целевом устройстве"
  5. Добавить Desktop Run Configuration
    • Нажмите на зеленый + и выберите "приложение"
    • Дайте ему имя вверху, затем щелкните по ... рядом с 'Основным классом' f IELD. В диалоговом окне выберите проект и найдите главный класс настольного стартера. Нажмите ОК.
    • Теперь нам нужно сменить рабочий каталог. Нажмите ... и в окне просмотра папки выберите папку с активацией android starter. Без него настольный стартер не сможет найти требуемые изображения и другие вещи для запуска.
    • Последнее, что нужно сделать, это выбрать путь к классам. Выберите настольный модуль. Нажмите ОК.

Детали:

  • Android Studio Версия: AI-130,737825 (11 июля 2013)
  • JRE: 1.7.0_25
  • libGDX: Nightly строить из 8/15/2013
  • Android-устройство: Google Nexus 7
  • Проекты, созданные: gdx-setup-ui.jar (скачано http://libgdx.badlogicgames.com/nightlies/)
3

Удаленное приложение полностью с устройства и развернуло его снова. Это решило проблему

+0

Да, у меня была такая же проблема, переустановка приложения работала нормально –