특성화고지식인 어플 코딩중
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를 로그를 찍어보면 잘 나온다 ㅋㅋㅋㅋㅋ
무엇이 문제일까 흠...
그래서 그냥 언젠가는 공부해야 될텐데 생명주기를 지금 어느정도라도 좀 알아보자 해서 순서라도 좀 봤는데
이렇게 프래그먼트의 생명주기가 이루어져 있다
나는 지금 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 |