2014-12-01 13 views
9

Ich baue meine App mit Android Lollipop SDK (21). Nachdem Sie einige Aktivitäten geöffnet und geschlossen haben, hat eine Aktivität diesen beschädigten Bildschirm. Es sieht aus wie ein Speicherfehler, aber das passiert nur auf Android Lollipop-Geräten. Im Logcat kann ich keine Fehler sehen.Android Lollipop Aktivität Bildschirm beschädigt

Irgendwelche Ideen, was das ist?

enter image description here

+0

Haben Sie versehentlich ein 'WebView'- (oder' AdView'-) Widget in Ihrer App? Hast du http://stackoverflow.com/questions/27172217/android-systemui-glitches überprüft? – matiash

+0

webView.setLayerType (View.LAYER_TYPE_SOFTWARE, null); löst das Problem. –

Antwort

5

webView.setLayerType (View.LAYER_TYPE_SOFTWARE, null); löst das Problem.

+0

Vielen Dank. Ich versuche es. – Zenco

+0

Vielen Dank, dass dies für meine App funktioniert, die WebView verwendet. Ich hatte genau die gleiche Korruption wie @Zenco. (Ich verwende ein Nexus 5 mit Lollipop 5.0.1) Einstellung LayerType zu TYPE SOFTWARE funktionierte für mich. :-) –

1

Es sollte auch auf 4.4 geschehen. Versuchen Sie, Ihrem Fragment oder Ihrer Aktivität immer einen Hintergrund zuzuweisen. update Jemand hat versucht, eine transparente bkg und es hat nicht funktioniert.

+0

Wissen Sie, warum das passiert? – Zenco

+0

Keine Ahnung, ich denke, es wird durch eine Art von Grafikproblem in der SDK verursacht. Hast Du es versucht? @ Zenco? – TheRedFox

+0

Ja, aber ich kann das nicht reproduzieren. Ich stimme deine Antwort ab, wenn dieser Effekt nicht erscheint. – Zenco

1

Die Lösung

webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 

ist in Ordnung, aber ein bisschen übertrieben, da dieses Problem gilt nur für Nexus-Geräte auf 5,0 Lollipop. Warum alle Telefonmodelle bestrafen?

boolean isLollipop = android.os.Build.VERSION.SDK_INT == Build.VERSION_CODES.LOLLIPOP; 
boolean isNexus = android.os.Build.MODEL.toLowerCase().contains("nexus"); 

if (isLollipop && isNexus) { 
    webView.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
} 

Dieser Code geht davon aus, dass Google das Problem in der nächsten Version des Betriebssystems beheben.

bearbeiten

Ab 5.1 behoben dieses worden, was dieser Code behandelt.

Verwandte Themen