Fresco: Share Element Gone después de SharedElementReturnTransition en Android N

Creado en 31 ago. 2016  ·  70Comentarios  ·  Fuente: facebook/fresco

Utilizo el código fresco más reciente para hacer el trabajo de SharedElement Transition, funciona bien en Android L, M, pero en Android N, sale mal

antes de la transición
screenshot0

después de la transición
screenshot0

bug help wanted

Comentario más útil

¡Simplemente agregue este código en la actividad de llamada, + 1 si esto puede ayudarlo! @oprisnik


setExitSharedElementCallback(new SharedElementCallback() {

            <strong i="6">@Override</strong>
            public void onSharedElementEnd(List<String> sharedElementNames,
                                           List<View> sharedElements,
                                           List<View> sharedElementSnapshots) {

                super.onSharedElementEnd(sharedElementNames, sharedElements,
                        sharedElementSnapshots);

                for (View view : sharedElements) {
                    if (view instanceof SimpleDraweeView) {
                        view.setVisibility(View.VISIBLE);
                    }
                }
            }
        });

Todos 70 comentarios

¿Puede mostrar cómo hace la parte de transición utilizando la aplicación de demostración de Fresco?

activity_main.xml y activity_detail tienen el mismo SimpleDraweeView con el mismo nombre de transición
y en el método onCreate de DetailActivity como se muestra a continuación:

protected void onCreate (Bundle SavedInstanceState) {
getWindow (). requestFeature (Window.FEATURE_CONTENT_TRANSITIONS);
getWindow (). setSharedElementEnterTransition (DraweeTransition.createTransitionSet (ScalingUtils.ScaleType.CENTER_CROP, ScalingUtils.ScaleType.FIT_CENTER));
getWindow (). setSharedElementReturnTransition (DraweeTransition.createTransitionSet (ScalingUtils.ScaleType.FIT_CENTER, ScalingUtils.ScaleType.CENTER_CROP));
addTransitionListener ();
super.onCreate (SavedInstanceState);
setContentView (R.layout.activity_detail);
mBaselineJpegView = (SimpleDraweeView) findViewById (R.id.baseline_jpeg);
mBaselineJpegView.setImageURI (Uri.parse ("https://www.gstatic.com/webp/gallery/1.sm.jpg"));
mBaselineJpegView.setOnClickListener (nuevo View.OnClickListener () {
@Anular
public void onClick (Ver v) {
Toast.makeText (DetailActivity.this, "dsasa", Toast.LENGTH_LONG) .show ();
}
});
}

addTransitionListener () no hace nada, solo imprime el registro

entonces, ¿utilizo la forma incorrecta de hacer la transición?

Esto también me está pasando a mí.

Tengo lo siguiente en el método onCreate () antes de super.onCreate ()

supportRequestWindowFeature(Window.FEATURE_CONTENT_TRANSITIONS);
Transition fade = new Fade();
fade.excludeTarget(android.R.id.statusBarBackground, true);
fade.excludeTarget(android.R.id.navigationBarBackground, true);
Window window = getWindow();
window.setEnterTransition(fade);
window.setReturnTransition(fade);
window.setExitTransition(fade);
TransitionSet transitionSet = DraweeTransition
                    .createTransitionSet(ScalingUtils.ScaleType.CENTER_CROP,
ScalingUtils.ScaleType.CENTER_CROP);
window.setSharedElementEnterTransition(transitionSet);
window.setSharedElementExitTransition(transitionSet);

Estoy experimentando el mismo problema. El setSharedElementReturnTransition no funciona en Android N.He agregado registros a los oyentes de transición y onTransitionStart y onTransitionEnd no se activan en Android N, pero en Android M & L funciona bien.
Estoy usando la última versión de la biblioteca Fresco com.facebook. fresco: fresco : 0.14.1 con com.facebook. fresco: imagepipeline-okhttp3 : 0.14.1
No tengo este problema si uso la biblioteca de Picasso para cargar la imagen.
El escenario es similar: gridView, gridItem navega a otra actividad (todo está bien en esta parte) pero cuando regreso, no hay reingreso, la imagen parpadea y se recarga (la imagen del marcador de posición no es visible ni la imagen que estaba ya cargado). Esto solo ocurre en Android N (7.0)

¿Alguna actualización sobre este tema?

Cambió de Fresco a Picasso y el problema está resuelto. Lástima que esta biblioteca no se mantenga con la frecuencia requerida por las nuevas versiones del sistema operativo Android que salen.

Parece que este problema está marcado incorrectamente como "detalles de necesidades". Este problema también existe en Android 7.1.1 (nivel de API 25).

Gracias, echaremos un vistazo

También estoy experimentando el mismo problema, así que +1 de mi parte por solucionarlo.

aquí igual

Hazlo. Hazlo. ;-)

Sí, por favor hazlo.

Por favor...

+1

Me pregunto por qué esto no es una alta prioridad.

+1

Cuando me desplazo a la posición del elemento compartido en onActivityReenter el elemento desaparecido regresa con un pequeño parpadeo blanco:

    <strong i="7">@Override</strong>
    public void onActivityReenter(int resultCode, Intent data) {
        super.onActivityReenter(resultCode, data);

        final int position = data.getIntExtra(EXTRA_GIF_POSITION, -1);
        if (resultCode == RESULT_OK && position != -1) {
            gifRecyclerView.getLayoutManager().scrollToPosition(position);
        }
    }

Si alguien conoce una solución mejor, le agradecería que la compartiera.

Hola, estoy experimentando el mismo problema pero solo en Android 7.1.1 API 25

Si hay alguna actualización sobre el problema, lo agradecería mucho.

Lo mismo aquí en emu con 7.x, pero yo uso onWindowFocusChanged para ser inmersivo, cuando se termine, la imagen desaparecerá pero se volverá a mostrar instantáneamente.

Aquí igual. Llamar a requestLayout en la Vista que contiene SimpleDraweeView parece solucionarlo con algunos parpadeos. por favor avise

¡Simplemente agregue este código en la actividad de llamada, + 1 si esto puede ayudarlo! @oprisnik


setExitSharedElementCallback(new SharedElementCallback() {

            <strong i="6">@Override</strong>
            public void onSharedElementEnd(List<String> sharedElementNames,
                                           List<View> sharedElements,
                                           List<View> sharedElementSnapshots) {

                super.onSharedElementEnd(sharedElementNames, sharedElements,
                        sharedElementSnapshots);

                for (View view : sharedElements) {
                    if (view instanceof SimpleDraweeView) {
                        view.setVisibility(View.VISIBLE);
                    }
                }
            }
        });

el mismo problema aquí ... @antxyz He puesto su código en las actividades de llamada y llamada en el método onCreate pero sin éxito. La imagen del elemento compartido sigue siendo invisible después de devolver la transición.

No sé si puede ayudar a encontrar una solución, pero noté que cuando se abre el teclado, SimpleDraweeView se vuelve visible.

Estaba teniendo el mismo problema y se solucionó después de estas dos llamadas:

  1. Justo antes de startActivity(... :
    setExitSharedElementCallback(new SharedElementCallback() {
                <strong i="9">@Override</strong>
                public void onSharedElementEnd(List<String> names,
                                               List<View> elements,
                                               List<View> snapshots) {
                    super.onSharedElementEnd(names, elements, snapshots);
                    for (final View view : elements) {
                        if (view instanceof SimpleDraweeView) {
                            view.post(() -> view.setVisibility(View.VISIBLE));
                        }
                    }
                }
            });
  1. Dentro del onCreate de la nueva actividad:
setEnterSharedElementCallback(new SharedElementCallback() {
                <strong i="15">@Override</strong>
                public void onSharedElementEnd(List<String> names,
                                               List<View> elements,
                                               List<View> snapshots) {
                    super.onSharedElementEnd(names, elements, snapshots);
                    for (final View view : elements) {
                        if (view instanceof SimpleDraweeView) {
                            view.post(() -> view.setVisibility(View.VISIBLE));
                        }
                    }
                }
            });

@oprisnik ¿ alguna actualización sobre esto? Es una pena que aún no se haya solucionado.
Todavía estoy experimentando esto con API 24+, cuando el elemento compartido es un elemento dentro de RecyclerView .
Ninguna de las soluciones alternativas enumeradas en este ticket funcionó para mí (la vista nunca está configurada como invisible / desaparecida en primer lugar).
Estoy usando DraweeTransition.createTransitionSet() tanto para ingresar como para regresar.
A veces, la imagen desaparece hasta que se desplaza la vista de reciclaje, a veces vuelve con un parpadeo después de un tiempo (podría deberse a una llamada a notifyDataSetChanged ()).

No estoy seguro de si esto es de alguna ayuda, pero esto es lo que está sucediendo en Fresco de acuerdo con los registros cuando la segunda actividad se cierra y el elemento compartido vuelve a su posición:

V/unknown:AbstractDraweeController: controller c6a03e3 9: onDetach
V/unknown:AbstractDraweeController: controller c6a03e3 9: release: image: CloseableReferenceWithFinalizer f25d513
V/unknown:AbstractDraweeController: controller f84c24e 4: onAttach: request needs submit
V/unknown:AbstractDraweeController: controller f84c24e 4: set_final_result @ onNewResult: image: CloseableReferenceWithFinalizer f25d513

Esto sucede cuando se vuelve a mostrar el mapa de bits.
Cuando no se muestra el mapa de bits, los dos últimos eventos no ocurren:

V/unknown:AbstractDraweeController: controller f84c24e 4: onAttach: request needs submit
V/unknown:AbstractDraweeController: controller f84c24e 4: set_final_result @ onNewResult: image: CloseableReferenceWithFinalizer f25d513

@marcosalis Al volver a la primera actividad (con el recyclerView). ¿Eso siempre activa un notifyDataSetChanged ()?

@erikandre gracias por la respuesta;)
Después de algunas pruebas, puedo confirmar que no se llama a notifyDataSetChanged (), incluso cuando el mapa de bits se muestra solo.

Este es el estado de SimpleDraweeView si pongo un punto de interrupción en SharedElementCallback.onSharedElementEnd() en la actividad de llamada.

 DraweeHolder{controllerAttached=false, holderAttached=true, drawableVisible=false}

PipelineDraweeController{super=PipelineDraweeController{isAttached=false, isRequestSubmitted=false, hasFetchFailed=false, fetchedImage=0, events=[...]}, dataSourceSupplier={request=ImageRequest{uri=https://OMITTED, cacheChoice=DEFAULT, decodeOptions=100-false-false-false-false-ARGB_8888-null, postprocessor=null, priority=HIGH, resizeOptions=null, rotationOptions=-1 defer:true, mediaVariations=null}}}

Creo que podría tener algo que ver con los métodos doDetach() y doAttach() en SimpleDraweeView , cuando la vista en sí está en un RecyclerView .
Finalmente, esto funcionó para mí (agregado a la Actividad desde donde se genera la transición), aunque no es extremadamente limpio:

        setExitSharedElementCallback(new SharedElementCallback() {
            <strong i="11">@Override</strong>
            public void onSharedElementEnd(List<String> names, List<View> elements, List<View> snapshots) {
                for (View view : elements) {
                    if (view instanceof SimpleDraweeView) {
                        view.post(() -> {
                                myAdapter.notifyDataSetChanged();
                        });
                    }
                }
            }
        });

@marcosalis ¡ Genial que hayas encontrado una solución! Intenté reproducir este problema en particular en la aplicación Showcase que se ejecuta en Genymotion con Android 7, pero no tuve suerte.

¿Cómo se ven las vistas de elementos para la vista del reciclador? En mi caso, fue solo un FrameLayout envolviendo un SimpleDraweeView.

@marcosalis, su solución funcionó para mí con un pequeño cambio, eliminando el ciclo for:

setExitSharedElementCallback(
                    new SharedElementCallback() {
                        <strong i="7">@Override</strong>
                        public void onSharedElementEnd(List<String> names, List<View> elements, List<View> snapshots) {
                            super.onSharedElementEnd(names, elements, snapshots);
                            notifyDataSetChanged();
                        }
                    }
            );

Me encontré con el mismo problema mientras jugaba con las transiciones entre actividades. Ninguna de las soluciones alternativas propuestas anteriormente pareció funcionar. (API 25) Así es como se ve: https://vimeo.com/225497240

Creo que hemos encontrado una solución y, con suerte, pronto estará disponible una solución.

La solución se puede encontrar en dc7ec2436fc9b639fe1a39398712c360b16da468.

Por ahora, debe configurar el primer DraweeView donde comienza la transición para usar el manejo de visibilidad heredado llamando a simpleDraweeView.setLegacyVisibilityHandlingEnabled(true); (como puede ver en el ejemplo de transición en nuestra aplicación de muestra Showcase) .

¿Puede comprobar si esto resuelve los problemas por usted? Vamos a lanzar una nueva versión de Fresco que contiene esta corrección muy pronto.

¡Sí, gracias! Confirmado que esto resuelve el problema. Esperamos una versión actualizada.

Lanzamos Fresco v1.4.0 , que incluye la corrección mencionada anteriormente. Simplemente llame a simpleDraweeView.setLegacyVisibilityHandlingEnabled(true); y debería funcionar ahora.

También actualizamos la muestra de transición de Showcase para reflejar estos cambios.

Gracias por esta solución, funcionó perfecto en mi caso. Una pregunta, ¿por qué no poner setGlobalLegacyVisibilityHandlingEnabled en true de forma predeterminada? ¿Hay algún problema de rendimiento?

El manejo de la visibilidad cambió con Android N y mi cambio es (más o menos) revertir el comportamiento a pre-N. Cambiar este comportamiento para todas las imágenes podría dar lugar a otros problemas inesperados y es por eso que decidimos no activarlo de forma predeterminada todavía. Una vez que hayamos verificado que no hay efectos secundarios, consideraremos activarlo de forma predeterminada.
Siéntase libre de configurarlo en true e informar cualquier problema que encuentre.

ezgif com-resize

Esta solución parece no funcionar de forma aleatoria. Estoy configurando setGlobalLegacyVisibilityHandlingEnabled en verdadero, pero después de unos pocos clics, la imagen devuelta está en blanco.

Fresco 1.5.0, Oreo

Editar: Después de desarrollar un par de días más y mover algunas vistas, descubrí que el problema ya no ocurre en mi dispositivo de píxeles Oreo. En mi Nexus 5x API 24 emulado, la imagen siempre está en blanco después de la animación de salida.

Tengo el mismo problema con setLegacyVisibilityHandlingEnabled . Establecerlo en true funciona la mayoría de las veces, pero a veces, de forma aleatoria, la imagen desaparece después de la transición de retorno.

@marcosalis ¿solo pasa en Oreo o también en Nougat?

Hola @oprisnik He logrado reproducirlo aleatoriamente en un Samsung S7 (Nougat) y en un emulador en API 26. Avísame si puedo ser de ayuda para depurarlo.

Gracias, intentaré reprogramar cuando tenga un poco más de tiempo

@oprisnik
Puede confirmar que no parece hacer su trabajo la mayor parte del tiempo (API24 + API25)

Sin embargo, logré que funcionara un poco usando el siguiente truco:

        setExitSharedElementCallback(new SharedElementCallback() {
            <strong i="8">@Override</strong>
            public void onSharedElementEnd(List<String> names,
                                           List<View> elements,
                                           List<View> snapshots) {
                super.onSharedElementEnd(names, elements, snapshots);
                for (final View view : elements) {
                    if (view instanceof SimpleDraweeView) {
                        view.post(() -> {
                            view.setVisibility(View.VISIBLE);
                            view.requestLayout();
                        });
                    }
                }
            }
        });

Pude reprogramar. Sin embargo, para mí solo ocurre raramente. Verificaré si puedo encontrar una solución alternativa diferente para solucionar este problema.

Hola @oprisnik ,
¿Encontraste una solución alternativa diferente?

Todavía no, esto es difícil de solucionar ya que Google cambió el comportamiento de visibilidad de la vista, lo que rompe el manejo de visibilidad de Fresco (que necesitamos para la administración de la memoria) y tampoco voy a tener mucho tiempo para analizar esto en un futuro cercano. . Sin embargo, hay varias alternativas mencionadas en este hilo que solucionan el problema (como la solución alternativa de @MartB que establece manualmente la visibilidad).

Si alguien quisiera investigar esto, ¡las solicitudes de extracción siempre son bienvenidas! :)

@oprisnik , el react-native-maps también se vio afectado por este problema.
He marcado estas líneas como comentario en el archivo RootDrawable.java como solución.
¿Recuerda / conoce algún problema importante relacionado con marcar esas líneas como líneas de comentarios?

Experimentar el mismo problema que @efkan parece que está afectando a una gran cantidad de dispositivos Android (Android Nougat 7.1 API 25 y superior).

Su solución ha solucionado todos los problemas que estaba teniendo.

@efkan No lo sé exactamente. Recuerdo que también miré esto cuando estaba buscando soluciones alternativas, pero lo descarté. Creo que un problema con la eliminación de estas comprobaciones es que el mapa de bits subyacente se ha liberado (ya que la Vista ya no es visible) e intentar dibujarlo arrojaría un java.lang.RuntimeException: Canvas: trying to use a recycled bitmap ... ya que BitmapDrawable no realizar las comprobaciones de cordura.

ImageView sí mismo tiene el mismo error en el que no restaura correctamente la visibilidad dibujable de ningún dibujable, pero aún funciona ya que la mayoría de los dibujables no hacen la verificación de visibilidad y no hay administración de memoria manual, y el mapa de bits subyacente todavía sería válido.

@oprisnik gracias por todas estas explicaciones.

Para probar si esto funciona, es bastante fácil agregar esto como una configuración a GenericDraweeHierarchyBuilder y, dependiendo de eso, ignore la verificación de visibilidad en RootDrawable (que se crea en GenericDraweeHierarchy , consulte https://github.com/facebook/fresco/blob/master/drawee/src/main/java/com/facebook/drawee/generic/GenericDraweeHierarchy.java#L155).

No dude en enviar un PR que agregue esta configuración para que pueda habilitarla para sus aplicaciones y ver si hay efectos secundarios.

El mismo problema aparece solo en dispositivos con Android 7.1 (o superior).
Ninguna de las soluciones anteriores funciona.
El problema siempre aparece cuando la red está limitada a 10 kb / s.

@ babyblue1314 - ¿El cambio RootDrawable mencionado anteriormente tampoco lo soluciona?

@oprisnik ¡ Gracias por tu rápida respuesta!
Em ... Supongo que sí, el cambio de RootDrawable mencionado anteriormente tampoco lo soluciona para mí.
No sé si lo usé incorrectamente. Así es como se ve:

Antes de usar el cambio de RootDrawable:

Después de usar el cambio de RootDrawable:

_ Debo mencionar que la red está limitada a 10kb / s. _
Y lo que es más, esto no solo aparece en ListView sino también en RecyclerView y GridView, como se muestra a continuación:

Mi código es:

  1. ListViewAdapter (o RecyclerViewAdapter o GridViewAdapter):
SimpleDraweeView thumbnail = cholder.getView(R.id.thumbnail);

GenericDraweeHierarchyBuilder hierarchyBuilder = new GenericDraweeHierarchyBuilder(thumbnail.getContext().getResources());
GenericDraweeHierarchy hierarchy = hierarchyBuilder.build();
hierarchy.getTopLevelDrawable().setVisible(true, false);
thumbnail.setHierarchy(hierarchy);

ImageLoaderUtil.loadImage(thumbnail, item.getLogourl(), 696, 288);
  1. ImageLoaderUtil:
Uri uri = Uri.parse(url);
ImageRequestBuilder imageRequestBuilder = ImageRequestBuilder.newBuilderWithSource(uri);
imageRequestBuilder.setRotationOptions(RotationOptions.autoRotate()); 
imageRequestBuilder.setImageDecodeOptions(new ImageDecodeOptions(ImageDecodeOptions.newBuilder()
.setBitmapConfig(Bitmap.Config.RGB_565)));
imageRequestBuilder.setResizeOptions(new ResizeOptions(reqWidth, reqHeight));
ImageRequest imageRequest = imageRequestBuilder.build();

PipelineDraweeControllerBuilder draweeControllerBuilder = Fresco.newDraweeControllerBuilder();
draweeControllerBuilder.setOldController(simpleDraweeView.getController());
draweeControllerBuilder.setImageRequest(imageRequest);
draweeControllerBuilder.setTapToRetryEnabled(false); 

DraweeController draweeController = draweeControllerBuilder.build();
simpleDraweeView.setController(draweeController);

Fresco 1.5.0

Dispositivo: Lenovo, android 7.1.1

_Por favor, déjeme saber si necesita más información.

@ babyblue1314 No veo ninguna transición en sus videos o código relacionado con la transición. ¿Estás seguro de que estás hablando del mismo tema?

@oprisnik Lo siento, me acabo de dar cuenta de que este problema de transición es diferente al mío.
Vi que el fenómeno es similar al mío, así que ...
¿Debería iniciar una nueva edición?

@ babyblue1314 sí, por favor, esto parece no tener ninguna relación.

@oprisnik Finalmente encontré la causa de mi problema.
En caso de malinterpretar a otras personas, estoy aquí para dar algunas explicaciones.
Mi problema tiene algo que ver con el formato de imagen.
Si utilizo el método imageRequestBuilder.setProgressiveRenderingEnabled(true) con formato PNG, mi problema siempre se puede reproducir.
Si cambio el método a imageRequestBuilder.setProgressiveRenderingEnabled(false) con formato PNG, todo funciona bien.
@oprisnik ¡ Gracias de nuevo por tu paciencia!

Solucione este problema ...

Fresco 1.9.0 no soluciona el problema correctamente.
Una combinación de las proposiciones en este hilo lo corrige dependiendo del dispositivo:

Así que estoy usando ambas soluciones en mi código para estar seguro en mi código y, con suerte, eso cubre todo. @oprisnik Dedicaré un tiempo a tratar de comprender mejor el problema, si encuentro una solución, enviaré un PR.

Sí, lamentablemente todavía no tenemos una buena solución para este problema, ya que todas las soluciones mencionadas en este hilo fallan de una manera u otra. Si alguien tiene una idea sobre cómo solucionarlo correctamente, háganoslo saber o, mejor aún, envíe un PR :)

Aún así, este problema en el componente react-native-maps. ¿Me imagino que es un problema concurrente?
¿Tienes alguna idea de dónde está el problema?

¿Algún progreso en la identificación del problema? Parece que no hemos sabido nada desde abril.

Todavía no hemos tenido tiempo de investigar más a fondo lo que está pasando aquí. ¡No dude en investigar el problema y enviar una solicitud de extracción!

Como se mencionó anteriormente, el problema subyacente parece ser un error del marco de Android en el que ImageView no restaura correctamente la visibilidad del Drawable subyacente al regresar de la transición.

He presentado un informe de error de Android aquí: https://issuetracker.google.com/issues/111293868

También he creado una aplicación de muestra (que no es de Fresco) que describe el problema: https://github.com/oprisnik/VisibilityPlayground

Investigaremos si existe una solución para este problema. Sin embargo, Fresco requiere una administración de memoria manual y confiamos en la visibilidad de Drawable para volver a solicitar la imagen, por lo que no estoy seguro de si existe una solución mejor que las soluciones alternativas descritas anteriormente.

Cambié a fresco sin ser consciente de este problema. Represento una tonelada de gifs y hace un gran trabajo, pero también dependo de estas animaciones para la navegación. He podido usar los trucos mencionados anteriormente, pero en una animación de retorno, la imagen desaparecerá.

En realidad, invalidar o View.setVisibility no se puede mostrar dibujable, necesita llamar a Drawable.setVisible (verdadero, verdadero) directamente.
Agrego estos códigos en A Activity # OnCreate, funciona bien:

ActivityCompat.setExitSharedElementCallback(this, new SharedElementCallback() {
            <strong i="7">@Override</strong>
            public void onSharedElementEnd(List<String> sharedElementNames, List<View> sharedElements, List<View> sharedElementSnapshots) {
                super.onSharedElementEnd(sharedElementNames, sharedElements, sharedElementSnapshots);
                if (FP.empty(sharedElements)) {
                    return;
                }
                for (View view : sharedElements) {
                    if (view instanceof SimpleDraweeView) {
                        ((SimpleDraweeView) view).getDrawable().setVisible(true, true);
                    }
                }
            }
        });

@oprisnik En su aplicación de muestra que no es fresca, establece la transición a ChangeBounds . ¿Ocurre el error si elimina esta línea? Supongo que la visibilidad se restaura correctamente cuando el ChangeImageTransform está en juego. ¿Es posible hacer que las imágenes de frescos funcionen con ChangeImageTransform ?

@RainFool tiene razón. simpleDraweeView.getVisibility () es VISIBLE , pero simpleDraweeView.getDrawable (). isVisible () es false .

Sí, este es un error en el marco de Android donde la visibilidad de la vista (ImageView para ser precisos) no se propaga al Drawable, por lo que debe actualizar la visibilidad manualmente. Destaque el informe de errores de Android aquí para que tenga más visibilidad: https://issuetracker.google.com/issues/111293868

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