DataBinding 을 하다가 생겼던 에러. 먼저 아래의 두 글을 gradle.properties 에 추가하고 클린 후 다시 빌드 해본다. android.useAndroidX=true android.enableJetifier=true 그래도 안된다면 패키지명이 대문자일 경우 발생 할 수 있다. 나의 경우 패키지명을 소문자로 고치니 해결 되었다.
지난 프로젝트를 진행하던 중 한 객체에서 클릭 이벤트와 롱클릭 이벤트를 구현할 일이 있었다. 구현을 마치고 실제로 어플을 동작 시켜 테스트를 해보았더니 롱클릭 이벤트가 실행 되고 나서 원하지 않는 클릭 이벤트가 실행된다는 사실을 알게 되었다. 왜 그런가 찾아보니 나의 onLongClick() 함수의 반환값 때문이었다. |예시와 해결방안 기본적으로 onLongClick이벤트를 오버라이딩 하면 onClick과는 다르게 반환 값이 있는 것을 알 수 있다. 이 반환 값은 Click이벤트와의 동시 실행을 설정 하기 위한 반환 값이다. 각 설정은 다음과 같다 -return 기본값 false. true로 하면 onClick 동시 실행안됨 -false : 다음 이벤트 계속 진행, true는 이벤트 완료 기본값은 fal..
| 서론 오늘은 구글에서 만든 Android ORM 라이브러리인 Room Library에 대해서 정리해보려고 한다. 이번에 안드로이드 프로젝트를 진행하게 되면서 Room Library를 사용하여 구현을 하였는데 처음 접하는 개념이 많아서 이해하는 데에 매우 오래 걸렸던 기억이 있다. 그래서 개념이 잘 정리된 글이 많았으면 좋겠다는 생각을 했었어서 글을 쓰게 되었다. 나처럼 Room Library와 같은 ORM 라이브러리를 처음 접하는 사람들에게 이 글이 도움이 되기를 바란다. | Room Library? Room Library는 앞에서도 말했던 구글에서 만든 Android ORM Library이다. 풀 네임은 Room Persistence Library이지만, Room Library라고 불린다. 구글에서..
개발을 하다보면 일정시간이 지난후에 함수나 동작을 실행시켜야 하는 경우가 있다. 그럴 때 사용 하는 것이 Handler.postDelayed() 이다. 아래와 같이 사용한다. Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { Log.d(TAG, "setImg_water: thread water 후"); img_water2.setVisibility(View.INVISIBLE); img_water.setVisibility(View.VISIBLE); } },700);//700밀리 초 동안 딜레이 run() 함수 안에 딜레이 후 동작 시킬 행위를 작성하고, 700 자리에는 몇 밀리 초..
프로젝트 진행 중에 Fragment에서 SharedPreferences를 사용하여 하였으나 작동하지 않는 문제가 발생하였다. 왜 그런지 알아보니, getSharedPreferences() 는 Context 객체의 메소드이므로 Activity가 아니라 Context 가 없는 Fragment에서는 사용 할 수 없는 것. 따라서 이를 사용하려면 아래와 같이 액티비티를 통해 가져와야 한다. SharedPreferences preferences = this.getActivity().getSharedPreFerences Fragment에서 SharedPreferences를 다루는 것은 이것 말고도 다른 문제를 발생 시킨다. 그것에 대해서는 다음의 글을 참고 하여 코드를 작성 하는 것이 좋다. 2021.06.03 -..
개발 중에 java.lang.ClassCastException 이 발생 하였다. 왜 발생하는 에러인지, 어떻게 해결 하면 되는지 알아보자. |ClassCastExceptoin -객체의 형을 반환 할때 객체 타입이 적절하지 않을 때 발생하는 에러 위에서 설명 하였듯 이 에러는 객체 타입이 적절하지 않을 때 발생하는 에러이다. 클래스 단위의 에러이기 때문에 이 에러가 고쳐지려면 Class의 객체 타입을 변경 하거나 내 소스 코드의 객체 타입을 변경 하여야 한다. 이 에러는 실제로 객체 타입을 변경 해야만 하는 경우에도 발생하지만, 잘못된 클래스는 extends 하였을 때도 발생한다. |에러 경우 예시 나의 경우 개발 중 Fragment 에서 SharedPreferences 를 사용 하기 위해 Preferen..
소스코드상에서 리소스를 가져올때 어떻게 해야 하는지 까먹을 때가 많다. 따라서 간단하게 정리 하고자 한다. |이미지 리소스 변경 img_drink.setImageResource(R.drawable.drink_water); 이미지 소스는 ImageView에 setImageResource() 함수를 사용하여 설정 해준다. |Drawable 에 리소스 연결 Drawable drawable = ContextCompat.getDrawable(context, R.drawable.temp_waterac_1); Drawable 에 리소스를 연결 할때는 ContextCompat.getDrawable()을 사용한다. |String 가져오기 water = getString(R.string.drink_water_korean)..
기존에 작업을 잘 하고 있던 안드로이드 프로젝트가 갑자기 import가 안되서 갑자기 수십개의 에러가 발생하며 프로젝트가 실행이 안될 수 있다. 잘 실행되던 모든 부분들이 빨간 줄이 뜨며 빨갛게 변해버리고 아주 많은 에러 메시지를 보게되었다면 안드로이드 스튜디오-File-Invalidate Caches/Restart로 해결 하면 된다. 위의 방법을 써도 되지 않는 다면 아예 안드로이드 스튜디오를 껐다가 재시작을 하면 정상적으로 import가 되는 것을 확인 할 수 있다.
오늘은 모바일 앱 개발 프로젝트를 진행하면서 겪었던 doInBackGround 진입 문제에 대해서 다뤄보고자 한다. 내가 겪었던 문제는 AsyncTask를 사용하여 비동기식으로 동작을 실행 시킬때 백그라운드에서 돌아가는 부분인 doInBackGround() 함수가 진입이 되지 않는 다는 것이었다. 문제의 원인을 몰라서 한참 헤맸는데, 원인은 두가지이다. |원인 1. 해당 비동기 클래스가 실행 될때 다른 비동기 클래스의 작업이 동시에 실행되는 경우 (일반적) 2. AsyncTask 를 extends한 비동기클래스 doInBackGround 내에서 또 다른 비동기 클래스를 호출하여 실행 시키는 경우. |케이스 별 해결 방법 1. 원인 1의 경우 일반적으로 주로 쓰이는 해결 법이다. 아래는 문제가 있던 나의 ..
- Total
- Today
- Yesterday
- 에러
- reversing.kr
- exception
- 안드로이드
- 포너블.kr
- Spring
- 펌웨어 분석
- 자바
- 코드로 배우는 스프링 부트
- NumberFormatException
- MVVM
- 뷰모델
- AndroidX
- 동적분석
- 웹 MVC
- writeup
- 앱분석
- 정보보안
- pwnable.kr
- 리버싱기초
- androidstudio
- Android
- reversing.kr풀이
- Java
- CTF
- 모바일리버싱
- 스프링부트
- 리버싱.kr
- DataBinding
- 칼리리눅스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |