No se pudo encontrar RippleDrawable

Quiero crear una onda dinámicamente en el código.

Código:

if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { buyButton.setBackground(getPressedColorRippleDrawable(primaryColor, darkerVariant)); } public static RippleDrawable getPressedColorRippleDrawable(int color, int darkerVariant) { if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { ColorStateList colorStateList = new ColorStateList( new int[][] {new int[]{}}, new int[] {darkerVariant} ); return new RippleDrawable(colorStateList, new ColorDrawable(color), null); } return null; } 

Esto funciona en Lollipop pero hace que la aplicación se cuelgue en mi GNEX (4.3).
Error:

No se pudo encontrar la clase ‘android.graphics.drawable.RippleDrawable’, a la que se hace referencia desde el método fragments.ProductDetailFragment.getPressedColorRippleDrawable

07-17 12: 57: 45.757 30992-30992 / com.comizzo.ginsonline E / AndroidRuntime: EXCEPCIÓN FATAL: principal

java.lang.VerifyError: fragments / ProductDetailFragment

Pero RippleDrawable nunca se usa en Gnex porque el código no se ejecuta.

Cómo puedo arreglar esto ?

    El problema es que debe devolver un Drawable en lugar de un RippleDrawable en getPressedColorRippleDrawable . De lo contrario, en dispositivos pre-piruleta, obtendrá un VerifyError.

    Ese código, de hecho, no se está ejecutando. La aplicación se bloquea porque está recibiendo un java.lang.VerifyError . Intente realizar un Project → Clean si está utilizando Eclipse o Build → Rebuild project si está utilizando Android Studio.