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í.

  • ListPopupWindow: getWindowVisibleDisplayFrame (Rect) null excepción
  • NullPointerException en findViewById () en android
  • Intenta invocar el método virtual 'void android.widget.Button.setOnClickListener (android.view.View $ OnClickListener)' en una referencia de objeto nulo
  • Android: App fallando cuando alcanza AlertDialog.Builder usando el método Post
  • Listview conjunto adaptador fragmento nullpointerexception
  • Error al entregar el resultado ResultInfo {who_null, request = 1, result = -1, data = Intent {(tiene extras)}} a la actividad; NullPointerException
  • Fragmento de Android: findViewById devuelve null
  • Excepción de puntero nulo de Android en la respuesta de Retrofit
  • View.findViewById () devuelve null
  • ¿Qué es una NullPointerException y cómo puedo solucionarlo?
  • El botón puede producir una excepción de puntero nulo (Android Studio)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.