【问题标题】:Android - Signal 11, RS CPP error: Blur radius out of 0-25 pixel boundAndroid - 信号 11,RS CPP 错误:模糊半径超出 0-25 像素范围
【发布时间】:2018-09-26 11:07:57
【问题描述】:

升级我的应用程序以在 4.4.2 设备上运行时,我收到了错误

RS CPP error: Blur radius out of 0-25 pixel bound

伴随信号 11(本机代码)错误:

Fatal signal 11 (SIGSEGV) at 0x00000028 (code=1)

我花了很长时间才找到这个问题的根源,但在 Google 上没有任何结果或堆栈溢出,并且在我的代码中搜索任何“模糊”的使用都没有发现任何内容。

【问题讨论】:

标签: android


【解决方案1】:

最终我确实设法在我的 styles.xml 中找到了问题 - 在我使用的一个地方

<item name="android:shadowRadius">30</item>

关于扩展 android:TextAppearance.Holo.Widget.TextView 的样式。解决此问题的方法是使用错误中所述范围内的值,例如

<item name="android:shadowRadius">25</item>

我希望这有助于其他有类似问题的人不必花费很长时间来定位他们的问题!

【讨论】:

  • 帮助。这在使用 TextView.setShadowLayer 方法时也有效。
【解决方案2】:

如果您在 dp 中指定 shadowRadius 并且转换后的像素半径大于 25,也会发生这种情况。

例如,如果您将半径指定为 8dp,并在 xxxhdpi 设备上运行应用程序(密度乘数 4),则有效半径(以像素为单位)为 32。

【讨论】:

    【解决方案3】:

    如果您需要高于 25 像素的模糊半径,则可以关闭硬件渲染。

    android:layerType="software"
    

    myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    

    请参阅Hardware acceleration 文档。

    根据我的经验,关闭“加速”似乎不会对我的特定应用的性能产生负面影响。但是,模糊的质量略有显着差异。

    使用硬件渲染:

    带软件渲染:

    (以上两张图片取自运行 Android 5 的小米 2 手机。较新的硬件和软件可能会产生不同的结果。)

    这种质量命中是不可取的,但我发现它在大多数情况下是可以接受的。而且确实没有其他选择,因为除了上述崩溃之外,我在使用硬件加速时遇到了很多其他非常奇怪的错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-24
      • 2012-09-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多