Android系统在Lollipop中出现故障

时间:2014-11-27 13:48:32

标签: android android-5.0-lollipop

此错误发生在我的Nexus 5和运行 Lollipop 的Nexus 7上。

修改

当我进入收件箱>时, Google 在新的收件箱应用中也会出现此错误。设置>通知>任何项目并返回 ...

/修改

  • compileSdkVersion 21
  • buildToolsVersion 21.1.1
  • compile' com.android.support:appcompat-v7:21.0.2'

我有GalleryActivity显示多个图片,每页一次(在ViewPager内。当我点击后退按钮时,有时Android的SystemUI会出现故障。

普通视图

normal

Glitched view

glitched

查看视图如何重复,并在系统内部重复?

简单的触摸事件会恢复正常的SystemUI视图。

发生了什么事?

可能类似于:

6 个答案:

答案 0 :(得分:17)

设置android:hardwareAccelerated="false"是一种极端的解决方案,因为图形性能可能非常糟糕。

如果您可以查明行为不正常的视图并导致此问题,则可以通过setLayerType()更好地将其切换为软件渲染,例如

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);

有趣的是,到目前为止我还没有遇到任何Lollipop的渲染故障,但我们确实在KITKAT中看到了它们(如this question中所述),并且只有在 WebViews 时出现在屏幕上。

我建议尝试在不同的视图上切换它,直到问题被隔离(特别是如果它很容易重现)。


到目前为止,此问题的每次出现都与WebView(或使用WebView的组件,如AdMob)有关。根据{{​​3}},问题已在Android 5.0中修复,但似乎并非如此。

答案 1 :(得分:2)

我已经看过棒棒糖的UI故障,虽然与你的不同。我发现唯一的解决方法是禁用硬件加速:

android:hardwareAccelerated="false"

在活动或应用程序级别。如果这可以解决您的问题,请务必向Google报告,因为这会表明平台中存在错误。已经有至少一份公开报告。

我当然不想使用此设置部署应用程序,它实际上只是为了回答问题并帮助证明它不是代码中的错误。

希望这有帮助!

EDIT 12/10/2014:

@matiash提供了比这更精确的答案" sledgehammer"建议。我在使用ViewPager的多标签应用程序中主要在ActionBar上看到绘图故障,并且总是在没有任何WebView的标签/页面上。但是,我的一个标签/片段确实有一个嵌入式WebView,当它设置为软件渲染时,我的故障似乎消失了。我毫不在意地将@matiash建议的解决方法放在一个发货应用程序中......尽管它仍然指出了平台中的一些潜在问题。

答案 2 :(得分:1)

我也在自己的应用中见证过这个问题。

Any Android devs ever experience this kind of visual static? (see picture)

我不仅获得了那种视觉静态,而且还重复绘制。在使用api 21和支持库21.0进行开发时,只能在Nexus 5 5.0上见证它。

对我而言,它的重复性不高。它将在一次使用期间反复发生,但第二天我无法重现它。

我没有使用任何WebViews(可能通过admob接受)。我正在使用带有片段的ViewPagers。我也在使用DragSortList,并且首先在使用它的Activities中看到了这个问题。

https://github.com/bauerca/drag-sort-listview

你们这些人有多重复?

答案 3 :(得分:0)

您是否尝试在android:fitsSystemWindows="true"布局中设置Fragment?这将确保布局低于statusBar,我不确定导航按钮,但我想这也适用于它。

答案 4 :(得分:0)

渲染后在DecorView上调用请求布局:

getActivity().getWindow().getDecorView().requestLayout();

我在postDelay()中使用WebViewClient.onPageFinished()来调用它。它不是一个完美的解决方案(只是一种解决方法),但可能更像LAYER_TYPE_SOFTWARE。

答案 5 :(得分:-1)

.........去设置,然后是开发者选项(如果它们不可见...转到关于手机,然后点击内部版本号7-10次,开发者模式将开启)那里向下滚动并取消显示布局边界'你完成了简单易行。