10
votes

GDXRuntimeException sur Android: Impossible de charger la bibliothèque partagée 'GDX' pour la cible

J'ai développé une application libgdx et j'ai testé sur mon Samsung Galaxy S3 (4.1.2) où il fonctionne bien. J'ai essayé de le tester sur un Galaxy Grand (4.1.2) mais il a échoué. Dans le LOGCAT, j'ai trouvé ce qui suit:

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


6 commentaires

Avez-vous la trace complète de la pile avec des exceptions "causées par"?


Aussi, quelle version de libgdx utilisez-vous?


J'ai ajouté le logcat complet


Ah, eh bien, aucun problème évident là-bas ... Les bibliothèques indigènes sont extraites dans l'espace temporaire sur l'appareil. Est-ce que vous courez faible peut-être?


Que voulez-vous dire par courir bas ?!


Libgdx extrait ses bibliothèques au répertoire nommé dans la propriété java.io.tmpdir système système. Si la partition qui détient ce répertoire est devenue pleine, vous rencontrez des problèmes. (J'espère que vous auriez une meilleure erreur, mais je ne sais pas avec certitude.) Voir github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gd x / ...


3 Réponses :


2
votes

J'ai compris quel était le problème. Il ne travaillait que sur Samsung Galaxy S3 depuis le début avec certains fichiers C ++ étant chargés et lorsque j'ai édité certains de ces fichiers, je n'ai pas construit à l'aide de NDK.SO lorsque vous essayez de tester Sur un autre mobile, les nouvelles modifications n'étaient pas appliquées. Je les ai construits et l'application a couru avec succès.


0 commentaires

5
votes

J'ai reçu exactement la même erreur que le message d'origine lorsque j'ai essayé de charger des projets générés par LibgDx dans le studio Android: xxx

après un peu de recherche (spécifiquement www.badlogicgames.com/ Forum / Vieftopic.php? F = 11 & T = 9097), j'ai trouvé cet excellent tutoriel par Evolentity qui a montré comment importer des projets libgdx dans Android Studio:

http://imgur.com/a/ibfiv .

je peux 'T Répétez le tutoriel Verbatim car il est à la fois texte et captures d'écran, mais après les étapes m'a permis d'importer les projets générés avec uniquement les modifications énumérées dans le tutoriel:

Veuillez noter que je suis répété que je me répète Répondez ici parce que c'est dans un forum différent sur un site différent, et il y a de nombreux commentaires dans le débordement de la pile indiquant qu'il est mauvais de forme de poster des liens vers des solutions sur d'autres sites.

Veuillez également noter que Je comprends cette réponse ici comme il était t Le message d'erreur contenait dans la question de Omarsafwany qui était le point clé pour moi, plutôt que sur les circonstances spécifiques autour de sa question. J'espère que ça va.

  1. Projet d'importation:
    • Sélectionnez le dossier supérieur contenant tous les trois projets générés (partagés, de bureau, Android)
    • Sélectionnez "Créer ProEJCT à partir de sources existantes"
    • Renommez les trois bibliothèques (Libs = libgdx-Desktop, libs1 = libdgx-android, libs2 = libdgx partagée)
    • Acceptez les valeurs par défaut restantes et cliquez sur "Terminer"
    • Les trois projets doivent apparaître dans votre explorateur de projet.
    • Bibliothèque partagée d'exportation
      • Cliquez avec le bouton droit sur Module partagé et sélectionnez "Paramètres d'ouverture du module"
      • aller au module partagé et sélectionnez "Exporter" à côté de la bibliothèque partagée libgdx
      • Allez à Module Android et ajoutez un module partagé en tant que dépendance (en cliquant sur Green +)
      • Allez sur le module de bureau et ajoutez un module partagé en tant que dépendance (en cliquant sur Green +)
      • Modifier la configuration d'exécution Android
        • Renommez la configuration Android en ajoutant «-android» à la fin du nom existant
        • Sélectionnez "Afficher la boîte de dialogue SOIR" dans "Dispositif cible"
        • Ajouter une configuration de bureau
          • Cliquez sur Green + et sélectionnez "Application"
          • Donnez-lui un nom au sommet, cliquez sur ... à côté du champ "Classe principale". Dans la boîte de dialogue, sélectionnez Projet et trouvez la classe principale du démarreur de bureau. Cliquez sur OK.
          • Nous devons maintenant modifier le répertoire de travail. Cliquez sur ... et à partir de la vue Dossier Sélectionner un dossier d'actifs de Android Starter. Sans son démarreur de bureau ne sera pas en mesure de trouver des images requises et d'autres choses à courir.
          • Dernières choses à faire est de sélectionner CLASSPATH. Sélectionnez le module de bureau. Cliquez sur OK.

            Détails:

            • Android Studio Version: AI-130.737825 (11 juillet 2013)
            • JRE: 1.7.0_25
            • libgdx: construction nocturne à partir du 8/15/2013
            • Dispositif Android: Google Nexus 7
            • Projets générés par: gdx-setup-ui.jar (téléchargé à partir de http://libgdx.badlogicgames.com / Nightlies / )

0 commentaires

3
votes

a désinstallé mon application complètement à partir de l'appareil et déployé à nouveau. Qui a résolu le problème


1 commentaires

Oui, j'ai eu le même problème, réinstallant l'application fonctionnait bien