Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- flutter 회전
- 앱 백그라운드 푸시 데이터 저장
- 스위프트 카메라
- 푸시 데이터 저장
- 스위프트 웹뷰
- native flutter view
- 안드로이드 앨범
- 스위프트
- Flutter UIKitView MethodChannel
- 스위프트 UserDefaults
- NotificationService Extension
- swift sms
- swift 문자
- flutter rotate
- 스위프트 앨범
- Flutter NativeView
- 스위프트 푸시
- 노티피케이션 익스텐션
- 안드로이드 에러
- Swift flutterview
- 안드로이드 FCM
- 스위프트 테이블 뷰 셀
- 안드로이드 바로가기
- Swift flutterviewcontroller
- FlutterView MethodChannel
- silent push
- 안드로이드 숏컷
- 플러터 뷰 컨트롤러
- 앱 꺼졌을 때 푸시 데이터 저장
- swift autolayout
Archives
- Today
- Total
Things take time
[Android] Attempt to invoke virtual method 'android.os.IBinder android.view.View.getWindowToken()' on a null object reference 본문
Android(Error)
[Android] Attempt to invoke virtual method 'android.os.IBinder android.view.View.getWindowToken()' on a null object reference
겸손할 겸 2019. 7. 9. 11:27[에러코드]
Attempt to invoke virtual method 'android.os.IBinder android.view.View.getWindowToken()' on a null object reference
getWindowToken()이 Null 값을 리턴하는 경우
[상황]
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
if (adapter.getItemCount() - 8 > layoutManager.findFirstVisibleItemPosition()) {
moveBottom.show();
imm.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
}
위와 같은 소스를 사용했을 때 발생했다.
하드웨어 키보드를 숨기는 코드에서 발생한 에러!
[해결방법]
imm.hideSoftInputFromWindow(현재 액티비티에 그려진 뷰.getWindowToken(), 0);
나의 경우에는 getCurrentFocus()에서 Null을 리턴했기에, windowToken값을 얻을 수 없었다.
해결방법은 현재 액티비티에서 레이아웃 파일에 그려져있는 뷰 들중(당연히 findViewById로 연결된) 하나를 선택해서 사용하면 된다.
나같은 경우 recycler view가 있는 뷰였어서 해당 recyclerView.getWindowToken()으로 해결했다.