When upgrading my application to run on 4.4.2 devices I received the error
RS CPP error: Blur radius out of 0-25 pixel bound
accompanied by
Eventually I did manage to track the problem, which was in my styles.xml - in one place I used
<item name="android:shadowRadius">30</item>
on a style extending android:TextAppearance.Holo.Widget.TextView
. The fix for this issue was just to use a value within the range stated in the error, e.g.
<item name="android:shadowRadius">25</item>
I hope this helps somebody else with a similar problem from having to spend a long time locating their issue!
If you need to go higher than a 25 pixel blur radius, then you can turn off hardware rendering.
android:layerType="software"
or
myView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
See the Hardware acceleration documentation.
In my experience, turning off the "acceleration" didn't seem to negatively affect the performance for my particular app. However, there was a slightly noticeable difference in the quality of the blur.
With hardware rendering:
With software rendering:
(The two images above were taken from a Xiaomi 2 phone running Android 5. Newer hardware and software might give different results.)
This quality hit is undesirable but I found it to be acceptable for most cases. And there really wasn't another option since in addition to the above crash I was getting a lot of other very strange bugs when using hardware acceleration.
This also happens if you specify the shadowRadius in dp and the converted pixel radius is higher than 25.
So for example if you specify your radius to be 8dp and run the app on a xxxhdpi device (density multiplier 4), the effective radius in pixels is 32.