[英]java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/graphics/ColorUtils;
[英]java.lang.NoClassDefFoundError: Failed resolution of: Landroid/graphics/BlendModeColorFilter;
當我在模擬器上運行此應用程序時,它會崩潰。 導致它崩潰的行是v.getBackground().setColorFilter
。
但是,在實際設備上測試應用程序時沒有問題。
button.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN: {
v.getBackground().setColorFilter(new BlendModeColorFilter(0xe0f47521, BlendMode.SRC_ATOP));
v.invalidate();
break;
}
case MotionEvent.ACTION_UP: {
v.getBackground().clearColorFilter();
v.invalidate();
break;
}
}
return false;
}
});
如前所述,直到 API 級別 29 才引入 BlendModeColorFilter。如果您問我,應該在構建時拋出錯誤,但我離題了......
在我看來,最好的解決方案是 go 與BlendModeColorFilterCompat在最近的 androidx 核心版本中可用,如此處所述。
這會給:
v.getBackground().setColorFilter(BlendModeColorFilterCompat.createBlendModeColorFilterCompat(-0x1f0b8adf, BlendModeCompat.SRC_ATOP));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.