본문 바로가기

Android Error Review

Fragment getActivity() 오류 인줄 알았던 SweetAlertDialog null error

728x90

특성화고지식인 어플 코딩중

java.lang.RuntimeException: Unknown animation name: cn.pedant.SweetAlert.Rotate3dAnimation error:null

이라는 오류가 났다.


오류가 난 코드로 가보니


1
2
3
new SweetAlertDialog(activity, SweetAlertDialog.SUCCESS_TYPE)
                                    .setTitleText("질문 등록 성공!")
                                    .show();
cs


라는 코드가 있었다


음 분명 저번에 getActivity()로 잘 되었던거 같은데...

그래서 확인해보니 생명주기 관련해서 오류가 나는 것 같았다


생명주기는 제대로 공부를 안해서 잘 몰랐는데 망했구나

근데 신기하게도 getActivity()가 함수 내에서는 null을 return하는데 밖에서는 제대로 값을 반환한다길래

한번 시도해보았다


함수 밖에서

1
 Activity activity = getActivity();
cs

를 해봤더니...!!!


ㅎㅎㅎㅎㅎ 똑같은 오류 ㅎㅎㅎ

그럴수도 있죠

음.... 근데 이게 또 신기한거는 activity를 로그를 찍어보면 잘 나온다 ㅋㅋㅋㅋㅋ

무엇이 문제일까 흠...


그래서 그냥 언젠가는 공부해야 될텐데 생명주기를 지금 어느정도라도 좀 알아보자 해서 순서라도 좀 봤는데

https://t1.daumcdn.net/cfile/tistory/24597C3C58A723DA31

이렇게 프래그먼트의 생명주기가 이루어져 있다

나는 지금 onCreateView에서 작업중이였는데

뭔가 이름이 Activity가 만들어진 뒤! 라고 하는거 처럼 보이는 onActivityCreated()에서 해보기로 했다


안되네요

음 근데 오류를 좀 자세히 보니 null이 getActivity()를 의미하는게 아니라 SweetAlertDialog에서 나는 오류인거같아서 Toast 메세지로 바꾸니

아주 잘 된다.

아주 잘 된다.

아주 잘 된다.

아주 잘 된다.

아주 잘 된다.

아주 잘 된다.

아주 잘 된다.

아주 잘 된다.

아주 잘 된다.














그럴수도 있죠



음..... 뭐한거지

흑역사 탄생이구나 그렇구나

덕분에 생명주기 공부했으니 된거지 뭐


그래서 SweetAlertDialog 오류를 보니

'com.android.tools.build:gradle:3.0.0-alpha4' also has the same issue. A better workaround would be going back to ' classpath 'com.android.tools.build:gradle:3.0.0-alpha1'

라는 조언이 있는데 지금 나는 Android Studio 3.0 버전에서 alpha4를 사용중인데 저거 해석 대충 보니까

alpha4는 저런 이슈 있음 더 좋은 환경은 alpha1로~

결국 alpha1로 가라는건데 답 없네


그냥 2.3.2에서 다시 작업해야겠다

3.0 쓰는 이유가 Kotlin 때문에 그런건데 그냥 망했네 망했어


요약정리

 - 오류가 났다! 어! null이네? 그럼 분명 getActivity()를 못 받아오는 거겠지!
 - 엥 로그는 잘 나오는데???

 - 생명주기인가?!

 - 아 그냥 getActivity는 잘 되는데 SweetAlert에서 나오는 오류구나!

 - SweetAlert 알아보니 alpha 버전 문제

 - 2.3.2 에서 할게요 ㅂㅇ


오늘의 교훈 : 원래 하던 환경에서 하자

반응형

'Android Error Review' 카테고리의 다른 글

Android READ_EXTERNAL_STORAGE 권한  (1) 2017.08.04
kotlin onActivityResult error  (1) 2017.08.03