본문 바로가기

전체 글94

[Android] Cannot inherit from final class error Realm을 간단하게 만들어 테스트 하는 중인데, 이런 에러가 발생했습니다. RealmObject()를 extends해서 데이터 모델을 만들었는데 여기서 문제가 있었습니다 class UserInfo : RealmObject() { var name : String = "" var age : String = "" var gender : Int = 0 } 이런 식으로 구성되어있는데 빌드시키니 💥 error : cannot inherit from UserInfo public class model_UserInfoRealmProxy extends model.UserInfo 위와 같은 에러가 발생했습니다 Solution ) 기존 클래스에서 open만 추가해주면 에러가 해결됩니다 자바의 경우엔 final을 선언하면 되.. 2020. 12. 21.
WindowManager$BadTokenException Fatal Exception : android.view.WindowManager$BadTokenException Unable to add window — token android.view.VoewRootImpl@ is not valid; is your activity running? 이 에러가 지속해서 발생했는데 Firebase Crashlytics 에서 🔔 창 추가 불가 - 토큰이 올바르지 않음, 활동 실행 여부 확인 필요 이 비정상 종료는 대개 앱에서 이전에 완료된 활동을 컨텍스트로 사용하여 대화상자를 표시하려고 시도하여 발생합니다. 예를 들어 활동이 종료되면 대화상자를 표시하려고 시도하는 AsyncTask를 트리거하지만 사용자가 작업이 완료되기 전에 활동에서 뒤로 이동하면 발생할 수 있습니다. 비정.. 2020. 12. 15.
[Java/Kotlin] 깊은복사 Cloneable 이용하기 이전 포스팅에 이어서 Cloneable을 사용해서 깊은 복사를 하는 방법에 대해 적어보겠습니다. 깊은 복사에 대해 알고싶으시다면, 이전 포스팅을 참조해주세요 클래스에 Cloneable을 참조해서 구현하면 되는 방식이라 생각보다 간단합니다. 1. Cloneable implements 예제로 이름과 나이를 가지는 클래스를 구현해보겠습니다. 클래스에 Cloneable을 implements 해주고 Clone() Method를 생성해줍니다 ✔ Java public class User implements Cloneable { String name = ""; int age = 0; User(String name, int age){ this.name= name; this.age = age; } public Object.. 2020. 12. 6.
[Java / Kotlin] 얕은 복사 , 깊은 복사 객체의 복사를 크게 두 가지 얕은 복사(Shallow Copy), 깊은 복사(Deep Copy) 나눌 수가 있습니다. 혼동하여 사용할 경우 결과값이 달라지므로 차이를 알고 사용해야 합니다. 1. 얕은 복사 (Shallow Copy) 객체 복사 시 해당 객체의 주소값을 복사 얕은 복사의 경우, 주소값을 복사하기 때문에 객체 복사 후 변수를 변경하거나 삭제하면 기존 객체의 변수값에도 변화가 생긴다. 예시 배열에 들어간 값을 삭제하는지 테스트해보겠습니다 ✔ Java ArrayList origin = new ArrayList(); origin.add("AAA"); origin.add("BBB"); ArrayList swallowCopy = new ArrayList(); swallowCopy = origin; s.. 2020. 12. 2.
[Android] getColor, getDrawable Deprecated 대응 Android 버전이 업데이트되면, 기존의 함수가 Deprecated가 되기도 합니다. Deprecated 된 함수들은 버전별로 처리를 해주어야 합니다. 이번에 살펴볼 함수는 getColor와 getDrawable 함수입니다. getColor public int getColor (int id) getColor는 마시멜로우버전(API 23)에서 부터 Deprecated(getColor)되었다고 나와있습니다. 공식 문서에 보면, getColor(int, android.content.res.Resources.Theme)를 대신해서 쓰라고 나와있습니다만, ContextCompat에 있는 아래의 함수를 사용해서 변경해보도록 하겠습니다. 설명처럼 Build.VERSION_CODES.M (API 23) 에서부터 사용.. 2020. 11. 18.
[Android] Firebase setCurrentScreen 지원중단 앞선 포스팅에 이어, Firebase SDK가 업데이트되면서 수동화면추적을 위한 setCurrentScreen도 곧 지원중단 되므로, 함수를 변경해주도록 합니다. 수동화면추적이란? 자동 추적 사용 설정 여부와 관계없이 screen_view 이벤트를 수동으로 로깅할 수 있습니다. 이러한 이벤트는 iOS의 경우 viewDidAppear상태, Android의 경우 onResume 상태에서 로깅할 수 있습니다. screen_class 를 설정하지 않으면 애널리틱스는 호출할 때 포커스가 지정된 UIViewController 또는 Activity를 기반으로 기본값을 설정합니다 앱을 사용하면서 화면전환율, 현재 화면에 관한 정보를 이벤트에 추적하면서 쓰입니다. 아래의 예시는 사용자가 어떤 화면에 들어왔는지를 남기기 .. 2020. 11. 9.