>

특정 Android 버전 (5.0 이하)에서만이 오류가 발생하는 이유를 잘 모르겠습니다.

전화 :

myImageView.setImageDrawable(getResources().getDrawable(R.drawable.image, null));

이 때문에 나는 NoSuchMethodError 를 받고 있어요
어떻게해야합니까?


  • 답변 # 1

    이것을 사용

    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에 대해 자세히 읽을 수 있습니다.

  • 답변 # 2

    Use ContextCompat, it's helper class for accessing features in Context.

    이 클래스를 사용하면 다음 리소스에 쉽게 액세스 할 수 있습니다

    ImageDrawable

    문자열

    컬러

    ColorStateList

    CodeCacheDir

    그리고 더 많은 ...

    따라서 시도

    myImageView.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.image));
    
    

  • 답변 # 3

    @ 사전 답변이 정답입니다. 팁을 제공하기 위해 이것을 추가하기 만하면됩니다.

    Android 문서에는 각 API에 어떤 API 레벨이 포함되어 있는지 표시되어 있습니다. 예를 들어 사용중인 제품이 Android 5.0 (API 레벨 21)에 도입되었습니다.

  • 답변 # 4

    전화 와이즈 비즈  API 레벨 21에 추가 된 메소드

    Android 문서 확인

    두 번째 매개 변수 (테마)를 null로 사용하는 경우

    따라서 사용하십시오

    getResources().getDrawable(R.drawable.image, null)
    
    

    동일하게 다음 코드를 사용할 수 있습니다

    getResources().getDrawable(R.drawable.image);
    
    
    myImageView.setImageDrawable(getResources().getDrawable(R.drawable.image));

  • 이전 android - Google 콘솔 API 차트 분석 문제
  • 다음 apache nifi - 그루비 코드에서 음의 색인 오류를 제거하는 방법?