Fuga de Google Play Services
Empecé a usar los servicios de juegos de Google Play hace un tiempo, y ayer, mientras que comprobar el logcat no podía ayudar a notar este error:
E / DataBuffer (3183): Fuga interna de datos dentro de un objeto DataBuffer detectado! Asegúrese de llamar explícitamente a close () en todos los objetos de extensión de DataBuffer cuando haya terminado con ellos. (objeto interno: com.google.android.gms.common.data.DataHolder@40555410)
- Instalación opcional de Google Play Services
- Google Map Api v2 muestra "V / GoogleSignatureVerifier: firma no válida" mensaje de error en el registro
- Servicios de juegos de google google - probar los resultados de las cuentas de acceso en error desconocido
- AdMob de Google Play Services realizará desplazamientos automáticos no deseados
- Error al obtener el ID del anunciante
Se produce varias veces en una fila. Im no exactamente seguro porqué surge. No hace que mi aplicación se bloquee ni hace que la funcionalidad de rendimiento / clasificación de google deje de funcionar.
Todo lo que sé es que está relacionado con las funciones "unlockAchievementImmediate" y "submitScoreImmediate".
¿Alguien ha encontrado este problema antes o tiene alguna sugerencia?
Editar: En mi aplicación solo utilizo "unlockAchievementImmediate" y "submitScoreImmediate". Estas funciones no devuelven ningún búfer que necesite cierre alguno.
- No se pudo encontrar com.google.android.gms: play-services-analytics: 8.1.0
- ¿Dónde informar de los errores de la API a Google? (API de mensajes cercanos de Google)
- Cómo registrar usuarios con la cuenta de Google en la aplicación Android
- El diálogo de bloqueo inteligente de Google para guardar las credenciales no aparece al realizar pruebas
- Actualización de Google Play Services
- Android Studio: "Ejecución fallada para la tarea ': app: mergeDebugResources'" si el proyecto se crea en la unidad C:
- Servicios de juegos de Google Play en un juego de escritorio
- ¿Cómo añadir la versión de servicios de Google Play al manifiesto de tu aplicación?
Estos elementos se extienden DataBuffer: AchievementBuffer, AppStateBuffer, FilteredDataBuffer, GameBuffer, InvitationBuffer, LeaderboardBuffer, LeaderboardScoreBuffer, MetadataBuffer, MomentBuffer, ParticipantBuffer, PersonBuffer, PlayerBuffer, TurnBasedMatchBuffer.
Éstos se encuentran generalmente en sus oyentes de esos artículos particulares. Por ejemplo:
public void onTurnBasedMatchesLoaded(int statusCode, LoadMatchesResponse response) { TurnBasedMatchBuffer buff = response.getMyTurnMatches(); // do some stuff with buff buff.close() } public void onPlayersLoaded(int statusCode, PlayerBuffer buff) { Player p = buff.get(0); buff.close(); }
El error no aparece hasta después de salir de mi aplicación y volver a ingresar. Si llamo a mis partidos 3 veces y salir de la aplicación sin llamar a buff.close (), puedo esperar para ver la advertencia 3 veces al abrir de nuevo. Añadir en el buff.close () y desaparecen. Voila!
Debe liberarse cualquier subclase de Data Buffer. Así que después de que haya terminado con ese objeto lo liberan.
El objeto Buffer de datos contiene un método release()
así que después de que haya terminado con ese objeto simplemente lo libera usando databuffer.release();
.
- ¿Los viejos ficheros GCM siguen activos incluso después de una desinstalación?
- Gradle – recopilación de módulos selectivos (reutilización jar de lo contrario)