2017년 10월 10일 화요일

Android Studio에서 Sherlock 라이브러리 사용 시 No such field error

참고 사이트
1. 문제 해결 https://stackoverflow.com/a/3960442

2. 라이브러리 모듈 추가하기 https://bonoogi.postype.com/post/1295

이클립스시절 오래된 프로젝트를 가져와서 Firebase 기반으로 바꿔서 컴파일만 하는데도 다음과 같은 오류가 나면서 되지 않았다. 오류는 Actionbar Sherlock UI 라이브러리에서 발생하였음.

java.lang.NoSuchFieldError: No instance field mFragments of type

해결법을 요약하자면 aar형태의 라이브러리 대신 java 소스코드를 프로젝트에 추가하고
Watson.java에서 mFragments 변수 대신 새로 멤버 변수를 선언(FragmentManagerImpl)해서 바꿔준다.
AmimatorProxy.java 에서는 FloatMath를 Math로 바꿔야 한다. (import는 java.lang.Math이다.)

자세한 내용은 1번 링크의 답변을 참조할 것.

다운받은 라이브러리는 압축을 풀고 2번 링크를 참조하여 추가한다. (Import Module)
성공하면 아래 그림과 같은 프로젝트 창을 볼 수 있다


gradle에서 설정 바꾸기
기존 설정은 dependencies { ... }  에서
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
로 되어있을 것이다

프로젝트 내에서 모듈로 추가했으니 이렇게 바꿔준다.
compile project(':actionbarsherlock')


Clean Project하고 다시 빌드하여 해결완료.

2017년 9월 3일 일요일

GCC에서 static / shared 라이브러리 만들기

GNU GCC (Linux) 에서
Static library(.a 확장자 파일) 또는 shared 라이브러리(.so 확장자 파일) 컴파일 및 빌드하는 법

아래 URL 링크를 참조한다.
http://www.adp-gmbh.ch/cpp/gcc/create_lib.html


2017년 8월 17일 목요일

Raspberry Pi OS 설치 시 유용한 유틸 Etcher

Etcher 라는 유틸로

RPi 공식 웹사이트에서 받은 Raspbian 이미지를 SD카드에 간편하게 쓸 수 있다.


다운로드 URL: https://etcher.io/

PC에 SD카드 끼우고, Etcher 실행해서 이미지 파일 선택하고 버튼 눌러주면(Flash) 끝이다.

Windows, macOS, Linux 모두 지원


Raspbian 이미지 받는 곳: https://www.raspberrypi.org/downloads/raspbian/