android - No se pudo encontrar RippleDrawable
(2)
El problema es que debe devolver un Drawable en lugar de un RippleDrawable en
getPressedColorRippleDrawable
.
De lo contrario, en dispositivos pre-lollipop, obtendrá un VerifyError.
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 bloquee en mi GNEX (4.3).
Error:
No se pudo encontrar la clase ''android.graphics.drawable.RippleDrawable'', a la que se hace referencia en los fragmentos del método.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 ?
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.