with studio register para name log last developers applicationid java android facebook nullpointerexception event-tracking

java - register - sdk facebook android studio



Facebook SDK Android AppEventsLogger NullPointerException en color (2)

Integré el FacebookSDK actual para Android v3.5 con fines de seguimiento. Puede hacer un seguimiento de las instalaciones de aplicaciones llamando a com.facebook.AppEventsLogger.activateApp (context, YOUR_APP_ID);

Hasta ahora no hay problemas, puedo ver que estos eventos se muestran en el tablero de Facebook. Cuando se trata de rastrear eventos o comprar eventos, Facebook recomienda hacer lo siguiente:

m_fbAppEventsLogger = com.facebook.AppEventsLogger.newLogger(applicationcontext); m_fbAppEventsLogger.logPurchase(BigDecimal.valueOf(4.99), Currency.getInstance("USD"));

Parece que los eventos de compra se vacían de inmediato, lo que da como resultado

09-22 15:10:04.680: D/com.facebook.AppEventsLogger(31691): Caught unexpected exception while flushing: java.lang.NullPointerException

Si intento enviar un evento personalizado, se produce el mismo error si el SDK de Facebook decide vaciar los eventos en su cola.

No encontré nada para este comportamiento, por lo que cualquier ayuda sería muy apreciada.


debe agregar <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/> a su AndroidManifest.xml


Inicializo el SDK de Facebook de forma diferente a los ejemplos que figuran en su documentación.

Facebook recomienda que defina meta-data android:name="com.facebook.sdk.ApplicationId en AndroidManifest.xml y codifique un valor para facebook_app_id en strings.xml . Si usa el control de fuente, estos archivos generalmente se registran y, como una regla general, no me gusta comprometer mis llaves a repositorios remotos.

Tomo un recurso de cadena, llamado facebook_app_id , de un archivo externo con mi compilación gradle. Luego defino facebook_app_id manualmente cuando inicializo el SDK de Facebook en lugar de confiar en la biblioteca para encontrarlo.

Inicializar Facebook SDK

Inicializar Facebook SDK (permite el seguimiento de eventos de instalación):

private void initialiseFacebook(Application application) { FacebookSdk.sdkInitialize(application); AppEventsLogger.activateApp(application, application.getString(R.string.facebook_app_id)); }

Inicializar Facebook AppEventsLogger

Posteriormente, quería registrar algunos eventos de la aplicación de Facebook . Pude ver que Facebook Analytics realizaba un seguimiento de mis eventos de instalación. Sin embargo, cada vez que intenté registrar un evento, se devolvió el siguiente error:

Se detectó una excepción inesperada al descargar: java.lang.NullPointerException

Para mí, la solución fue volver a definir manualmente facebook_app_id en mi llamada a método para crear un AppEventsLogger. Esto resolvió mi problema.

AppEventsLogger.newLogger(application, application.getString(R.string.facebook_app_id));

Además: Habilite la depuración de SDK:

Me resultó muy útil tener registros más detallados del SDK de Facebook mientras solucionaba este problema. Puedes configurarlo con el siguiente código:

FacebookSdk.setIsDebugEnabled(true); FacebookSdk.addLoggingBehavior(LoggingBehavior.REQUESTS);

Este método también tiene la ventaja de permitirle usar un facebook_app_id diferente para cada tipo de compilación y / o sabor.