我不确定为什么我只在某些Android版本(5.0以下)上出现此错误。
我在打电话:
myImageView.setImageDrawable(getResources().getDrawable(R.drawable.image, null));
因此,我得到NoSuchMethodError
怎么办?
答案 0 :(得分:7)
使用此
myImageView.setImageDrawable(ContextCompat.getDrawable(this,R.drawable.image));
而不是这个
myImageView.setImageDrawable(getResources().getDrawable(R.drawable.image, null));
修改强>
当您使用setImageDrawable(getResources().getDrawable(R.drawable.image, null));
时,它会显示以下错误
注意 setImageDrawable(getResources().getDrawable(R.drawable.image, null));
此方法已在API级别21中添加
您可以阅读有关ContextCompat
的更多信息答案 1 :(得分:2)
使用ContextCompat帮助程序类来访问其中的功能 Context
使用此课程,您可以轻松访问以下资源,
还有更多......
请按以下方式尝试
myImageView.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.image));
答案 2 :(得分:1)
@Prem回答是正确的。只需添加此项即可为您提供提示。
在Android文档中,指示了每种方法包含哪个API级别。例如,Android {5.0(API级别21)中引入了the one you're using。
答案 3 :(得分:1)
你在打电话
在API级别21中添加的getResources().getDrawable(R.drawable.image, null)
方法
如果您使用第二个参数(主题)作为空
所以尝试使用
getResources().getDrawable(R.drawable.image);
您可以将以下代码用于相同的
myImageView.setImageDrawable(getResources().getDrawable(R.drawable.image));