GMail para KitKat se bloquea al enviar archivos adjuntos que no son imágenes o videos

UPDATE 3: Parece que todo esto fue causado por la actualización de OTA a KitKat 4.4. La imposibilidad de detener y borrar datos de la aplicación GMail solucionó el problema. No es realmente un resultado fácil de usar de una actualización OTA.

ACTUALIZACIÓN 2: El accidente se debe exclusivamente al nuevo manejo de archivos de Gmail en Android 4.4 KitKat. Al agregar cualquier otro tipo de archivo como archivo adjunto de imágenes o video, GMail se bloquea al enviar el correo electrónico. ¿Por qué eliminar la funcionalidad de su aplicación?

¿Alguien sabe dónde reportar los errores de GMail? Puedo reproducir los bloqueos con sólo usar GMail (no mi propio código):

  1. Escribir nuevo correo electrónico

  2. Añadir adjunto (sólo 2 opciones: "Adjuntar imagen" o "Adjuntar vídeo")

  3. Seleccione uno de esos.

  4. Elija un explorador de archivos (como ES explorer) para seleccionar un zip / apk / … (u otro archivo que no sea imagen / video)

  5. Gmail se bloquea al enviar el correo.

ACTUALIZAR:

El bloqueo ocurre en mi Nexus 4 running oficial (OTA) KitKat. Sin embargo, ejecutar el mismo código en mi Samsung Galaxy S2 corriendo CM10.2 todas las noches (Jelly Bean) funciona bien. También funciona en un Samsung Galaxy Tab 2 que ejecuta 4.0.4.

¿Está GMail roto en KitKat?

El Nexus 4 tiene GMail versión 4.6.1 (920375) El Galaxy S2 tiene GMail versión 4.6 (836823)

Pregunta original (resuelto, ver actualización 3):

Tengo el código siguiente en mi aplicación de Android:

Intent email = new Intent(Intent.ACTION_SEND); email.putExtra(Intent.EXTRA_EMAIL, new String[]{"xxx@gmail.com"}); email.putExtra(Intent.EXTRA_SUBJECT, "MetroNavigator data"); email.setType("application/zip"); email.putExtra(Intent.EXTRA_TEXT, "This email contains tracking data generated by the MetroNavigator app."); email.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + file.getAbsolutePath())); startActivity(Intent.createChooser(email, "Choose a mail client to send the data:")); 

Eso parece funcionar muy bien, ya que el archivo zip se agrega al correo electrónico correctamente (se puede ver que GMail menciona el tamaño del archivo, que no si la ruta del archivo es incorrecta).

Captura de pantalla: (no tengo 10 representantes pero no puedo incrustar) http://i.imgur.com/UkMQZLG.png

Sin embargo, GMail se bloquea al enviar el correo, dando la siguiente salida:

 11-23 12:22:38.451 31900-32089/? E/AndroidRuntime﹕ FATAL EXCEPTION: SyncAdapterThread-1 Process: com.google.android.gm, PID: 31900 java.lang.NullPointerException at android.content.ContentResolver.openInputStream(ContentResolver.java:613) at com.google.android.gm.provider.MailEngine$PublicMailStore.getInputStreamForUploadedAttachment(MailEngine.java:5591) at com.google.android.gm.provider.MailSync$AttachmentPartSource.newInputStream(MailSync.java:3968) at com.google.android.gm.provider.MailSync$AttachmentPartSource.<init>(MailSync.java:3941) at com.google.android.gm.provider.MailSync$ProtoOperationSink.messageSavedOrSent(MailSync.java:3708) at com.google.android.gm.provider.Operations.provideNormalOperations(Operations.java:586) at com.google.android.gm.provider.MailEngine$PublicMailStore.provideOperations(MailEngine.java:5290) at com.google.android.gm.provider.MailSync.nextSyncRequest(MailSync.java:853) at com.google.android.gm.provider.MailEngine.runSyncLoop(MailEngine.java:2217) at com.google.android.gm.provider.MailEngine.sync(MailEngine.java:2014) at com.google.android.gm.provider.MailEngine.performBackgroundSync(MailEngine.java:1936) at com.google.android.gm.provider.MailSyncAdapterService$SyncAdapterImpl.onPerformLoggedSync(MailSyncAdapterService.java:58) at com.google.android.common.LoggingThreadedSyncAdapter.onPerformSync(LoggingThreadedSyncAdapter.java:33) at android.content.AbstractThreadedSyncAdapter$SyncThread.run(AbstractThreadedSyncAdapter.java:259) 

He leído en otras preguntas relacionadas con los archivos adjuntos que no puedes cargar adjuntos desde el almacenamiento interno, pero yo uso

 Environment.getExternalStorageDirectory().toString(); 

Como la base para cada camino, y he incluido

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

En mi manifiesto. También es la aplicación de GMail que se estrella y no la mía. ¿Algunas ideas? ¿Es esto un error en GMail?

Me encantaría algunos entrada aquí.

Gracias por adelantado,

Thomas

3 Solutions collect form web for “GMail para KitKat se bloquea al enviar archivos adjuntos que no son imágenes o videos”

Como se mencionó en la actualización 3 de mi pregunta original, el culpable es una aplicación corrupta de Gmail. El borrado de datos corrige el problema.

Cambiar el código:

 Uri.parse("file://" + file.getAbsolutePath())); 

A:

 Uri.fromFile(file) 

Desinstalé la aplicación de Gmail y la reinstale y todo empezó a funcionar para mí.

  • No se puede agregar una vista personalizada a la barra de acciones de Android, ¿por qué?
  • No se puede iniciar la aplicación Android debido al error LogCollectManager.getUserType ()
  • Fragmentos androides getArguments () return null
  • AQuery (Android Query) Cómo cargar imágenes en realidad
  • NullPointerException en OnClickListener del botón
  • Fragmento de Android: findViewById devuelve null
  • Java.lang.RuntimeException: Error al entregar el resultado ResultInfo mientras se registra usando Facebook
  • ¿Cuál es el uso principal de "Añadir contrato de método a ..." Android Studio
  • Listview conjunto adaptador fragmento nullpointerexception
  • Java.lang.NullPointerException: Intenta invocar el método virtual 'ActionBar.setNavigationMode (int)' en una referencia de objeto nulo
  • NullPointerException en findViewById () en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.