Facebook-sdk-for-unity: Error de inicialización en Android

Creado en 11 oct. 2017  ·  4Comentarios  ·  Fuente: facebook/facebook-sdk-for-unity

Hola,

Estoy tratando de integrar el SDK de Facebook en mi juego Unity, pero la inicialización falla. Estoy usando la versión 7.8 del SDK porque las versiones más nuevas hacen que mi juego exceda el límite de métodos de 64K y no quiero que sea multi-dex. Esto es lo que veo en Android Logcat:
10-10 18:40:25.495 11528-11624/? V/com.facebook.unity.FB: SetUserAgentSuffix(Unity.7.8.0)
10-10 18:40:25.522 11528-11624/? V/com.facebook.unity.FB: Init({"appId":"842765265887515"})
10-10 18:40:25.532 11528-11624/? I/art: Rechazo de reinicio en la clase fallida previamente java.lang.Class: java.lang.NoClassDefFoundError: resolución fallida de: Landroid/support/v4/app/BaseFragmentActivityApi16;
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.nativeRender() ((nulo):-2)
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.532 11528-11624/? I/arte: en void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.532 11528-11624/? I/arte: en void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.532 11528-11624/? I/art: at void com.unity3d.player.UnityPlayer$c.run() ((nulo):-1)
10-10 18:40:25.532 11528-11624/? I/art: Causado por: java.lang.ClassNotFoundException: android.support.v4.app.BaseFragmentActivityApi16
10-10 18:40:25.532 11528-11624/? I/arte: en java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2)
10-10 18:40:25.532 11528-11624/? I/arte: en java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742)
10-10 18:40:25.532 11528-11624/? I/art: en java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362)
10-10 18:40:25.532 11528-11624/? I/arte: en java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.nativeRender() ((nulo):-2)
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.532 11528-11624/? I/arte: en void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.532 11528-11624/? I/arte: en void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.532 11528-11624/? I/art: at void com.unity3d.player.UnityPlayer$c.run() ((nulo):-1)
10-10 18:40:25.532 11528-11624/? I/art: Rechazo de reinicio en la clase fallida previamente java.lang.Class: java.lang.NoClassDefFoundError: resolución fallida de: Landroid/support/v4/app/BaseFragmentActivityApi16;
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.nativeRender() ((nulo):-2)
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.532 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.533 11528-11624/? I/arte: en void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.533 11528-11624/? I/arte: en void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.533 11528-11624/? I/art: at void com.unity3d.player.UnityPlayer$c.run() ((nulo):-1)
10-10 18:40:25.533 11528-11624/? I/art: Causado por: java.lang.ClassNotFoundException: android.support.v4.app.BaseFragmentActivityApi16
10-10 18:40:25.533 11528-11624/? I/arte: en java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2)
10-10 18:40:25.533 11528-11624/? I/arte: en java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742)
10-10 18:40:25.533 11528-11624/? I/art: en java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362)
10-10 18:40:25.533 11528-11624/? I/arte: en java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
10-10 18:40:25.533 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.nativeRender() ((nulo):-2)
10-10 18:40:25.533 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer.c(com.unity3d.player.UnityPlayer) ((null):-1)
10-10 18:40:25.533 11528-11624/? I/arte: en booleano com.unity3d.player.UnityPlayer$c$1.handleMessage(android.os.Message) ((null):-1)
10-10 18:40:25.533 11528-11624/? I/arte: en void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
10-10 18:40:25.533 11528-11624/? I/arte: en void android.os.Looper.loop() (Looper.java:154)
10-10 18:40:25.533 11528-11624/? I/art: at void com.unity3d.player.UnityPlayer$c.run() ((nulo):-1)
10-10 18:40:25.609 11528-11624/? E/Unity: AndroidJavaException: java.lang.NoClassDefFoundError: resolución fallida de: Lcom/facebook/FacebookActivity;

¿Alguna idea de lo que podría estar pasando aquí?

Gracias.

Comentario más útil

Tenía un seguimiento de pila similar, pero no terminaba allí: al desplazarse hasta el final, mostraba que la causa final era que no podía cargar alguna clase de android.arch. Después de investigar un poco, descubrí que esto fue causado por la versión 26.1.0 de la biblioteca de soporte (https://developer.android.com/topic/libraries/support-library/revisions.html#26-1-0) que agregó el Dependencia "Componentes de la arquitectura de Android". Después de agregar esas bibliotecas, funcionó.

Todos 4 comentarios

Tenía un seguimiento de pila similar, pero no terminaba allí: al desplazarse hasta el final, mostraba que la causa final era que no podía cargar alguna clase de android.arch. Después de investigar un poco, descubrí que esto fue causado por la versión 26.1.0 de la biblioteca de soporte (https://developer.android.com/topic/libraries/support-library/revisions.html#26-1-0) que agregó el Dependencia "Componentes de la arquitectura de Android". Después de agregar esas bibliotecas, funcionó.

@sp-jordi-vilalta Me salvaste el día. Enfrenté el mismo error en reaccionar nativo. Solo tu solución funcionó.

@sp-jordi-vilalta Gracias por el dato. ¿Puedes explicar cómo lo hiciste? Tengo un mismo problema en este momento. Gracias por adelantado

@GregLukosek No recuerdo el seguimiento completo de la pila, pero al final mostraba la verdadera clase que faltaba, y creo que era algo de android.arch.*
Los proyectos recientes de Android deberían administrar sus dependencias de Android usando maven/gradle, pero no conozco los detalles para automatizar esto para Unity, así que solo seguí la documentación en https://developer.android.com/reference/android/arch /lifecycle/package-summary.html para conocer los paquetes y las versiones necesarios y descargarlos manualmente del repositorio de Google maven (https://maven.google.com). En ese momento (v1.0.3), obtener el tiempo de ejecución y los paquetes comunes fue suficiente para que funcionara.

¿Fue útil esta página
0 / 5 - 0 calificaciones