본문 바로가기

Android

안드로이드 새모듈 생성, 빌드시 오류 안드로이드 스튜디오 (버전 3.1)을 이용해서 새 모듈을 생성하고, 기존 앱 "build.gradle"파일에 새 모듈을 의존성에 추가, 빌드시 오류가 발생한다. 오류 문구로 이래와 같은 문구들이 여러개 뿌려진다."Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :module" 안드로이드 개발자 사이트 문서(한글본)는 최신 내용으로 수정되지 않아서 문제 해결에 도움이 되지 않는다. 또한 안드로이드 스튜디오(버전 3.1)가 모듈을 생성할 때, 파일을 정확히 설정하지 않는 것이 문제가 발생하는 원인중 하나이다. 해결방법 : 새모듈 생성 후 의존성 추가스튜디오에서 "File > New > New Mo.. 더보기
Android Studio 3.1, 데이터바인딩 오류 Android Studio(안드로이드 스튜디오) 버전을 3.1로 올린 후 데이터 바인딩 부분에서 오류가 발생했다. 증상처음에는 바인딩 객체가 이미 빌드 되어 있었기 때문에, 빌드 오류는 없었으나 실행시 오류가 발생했다. 오류내용은 "Didn't find class "android.arch.lifecycle.Observer" on path" 였다. 혹시나 하는 마음으로, 프로젝트를 새로이 빌드를 했더니, 아예 데이터바인딩 관련 객체가 생성되지 않았다. 처방구글, 안드로이드 개발자 사이트에서 버전업과 관련된 문서를 확인했지만, 답을 얻지 못했었는데, 그 이유는 한글판으로 보고 있었기 때문이다. 영문판 페이지에는 3.1로 버전업을 할 때, 어떻게 해야 하는지 자세히 기술되어 있다. 데이터바인딩을 사용하기 위해.. 더보기
안드로이드 뒤로가기 버튼(백버튼) 보이기 및 가리기 안드로이드 프로그래밍을 접하면서 어려운 점 중의 하나가, 잘못된 정보들이 생각외로 많다는 것이다. 아마도 API버전이 올라가면서 예전에는 되었던 것이 폐기되거나 더 나은 방식이 제공되거나 했기 때문이라 생각된다. 뒤로가기 버튼 혹은 백버튼 보이기 두가지 방식이 있다. 설정하는 방식과 동적으로 프로그래밍하는 것이다.설정방식 : AndroidManifest.xml android:parentActivityName" 속성에 짝지워진 부모 Activity를 설정하면 자동으로 뒤로가기 버튼이 보여진다. 동적방식 : 프로그래밍에 의한 제어protected void onCreate(Bundle savedInstanceState) { ... getSupportActionBar().setDisplayHomeAsUpEnab.. 더보기
안드로이드 EditText 항목 쓰기방지(read-only)로 만들기 EditText 위젯을 읽기전용(read only)로 설정하고자 했는데, XML상 속성 "android:editable", 폐기예정이므로 몇가지 방법들을 찾아봤다. XML에서 설정"android:inputType" 속성을 제거하고, "android:focusable" 속성값을 "false"로 한다.코드상에서 설정setInputType 함수를 사용한다. 매개값으로 InputType.TYPE_NULL을 넘기면 된다. EditText editWord = (EditText)findViewById(R.id.editWord);editWord.setInputType(InputType.TYPE_NULL); 추가팁 (나만 몰랐던)"LinearLayout" 에서 어떤 위젯이 남은 공간 채우도록 만들기 위해 구글링된 여러 .. 더보기
안드로이드 시뮬레이터, root권한 없이 SQLite DB 파일 접근 이 글은 제목 그대로 안드로이드 시뮬레이터에 있는 앱의 SQLite DB 파일을 접근하는 방법을 설명하는데, root권한 없이 간단히 할 수 있는 방법을 설명한다. 먼저 안드로이드 시뮬레이터에 콘솔을 연결해야 하는데, 일반적으로 'adb'프로그램을 사용한다. 이 프로그램은 안드로이드 SDK의 번들로 제공되는 프로그램으로 SDK 설치 디렉토리 아래 '.../platform-tools' 디렉토리에 있다. OSX인경우 기본설정으로 설치했다면 SDK의 위치는 '~/Library/Android/sdk' 이다. 'adb'프로그램은 실물 안드로이드 기기에 연결이 될 뿐만 아니라 안드로이드 시뮬레이터에도 접속이 된다. 이 글에서는 시뮬레이터에 대한 부분만 다루기로 한다. adb devices시뮬레이터를 구동중이라면 아.. 더보기
안드로이드 기기를 사용하는 단위테스트 첫발 안드로이드 프로그램을 처음으로 짜보게 되었다. 단위테스트를 사용하기 위해 JAVA 프로그램을 제작할 때 하듯이 했는데, 간단한 단위테스트는 문제가 없었지만, 기기를 이용해야 되는 경우에는 구현이 까다로왔다. 예를 들면 리소스파일을 읽어오는 테스트... 우선 인터넷에 검색된 문서들의 경우, 제안된 TestCase 클래스들 'AndroidTestCase' 혹은 'ApplicationTestCase' 들은 모두 사라질(deprecated) 상태였다. 이리저리 살펴본 결과 1. 'src/androidTest/java' 디렉토리 아래에 단위테스트 클래스를 반드시 놓아야 했다.2. class annotation @RunWith를 아래와 같이 넣어야 한다.@RunWith(AndroidJUnit4.class) publ.. 더보기