목록프로그래밍/안드로이드 (41)
좋은 프로그램은 마음의 여유에서 나온다.
https://flutterstudio.app/ 모바일 UI를 디자인 할 수 있는 툴이다. source code 탭을 이용해서 바로 소스코드로 볼 수 있고, 붙여넣기하면 에뮬레이터에서 그대로 실행이 가능하다!!
여기서는 Flutter 1.0.0-stable 버전과 Android Studio 3.2.1을 이용한다. 본인의 OS에 맞는 SDK를 다운받는다. https://flutter.io/docs/get-started/install/macos 안드로이드 스튜디오를 켜고 Flutter와 Dart 플러그인을 설치한다. 안드로이드 스튜디오를 재시작하면 Flutter Project가 생긴다. Start a new Flutter project를 선택하면 여러가지 프로젝트 종류가 나오는데 그중에 android, ios로 실행할 수 있는 Flutter Application을 선택하여 생성한다. 처음에 다운받아 압축을 해제한 SDK 경로를 설정해주고, 프로젝트 경로를 지정해 준다. 음 아래와 같은 구조의 프로젝트가 생성되었다...
room 엔티티 클래스에 롬복 어노테이션을 달으면 빌드시 겟터를 찾을 수 없다는 오류가 발생. 디펜던시에 lombo을 먼저 적어주면 해결. compile 'org.projectlombok:lombok:1.16.20' annotationProcessor 'org.projectlombok:lombok:1.16.20'implementation 'android.arch.persistence.room:runtime:1.0.0' annotationProcessor 'android.arch.persistence.room:compiler:1.0.0' https://github.com/rzwitserloot/lombok/issues/1403
안드로이드 스튜디오를 3.1로 업데이트한 후 프로젝트를 만들면 Failed to open zip file.Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)Re-download dependencies and sync project (requires network)Re-download dependencies and sync project (requires network) 위와 같은 오류가 날 경우 그래들 배포 zip 버전을 변경해주면 됨. https://services.gradle.org/distributions/ 에 gradle-4.4-all.zip 도 있는데 왜 안되는걸까? ..
안드로이드 4.4등 특정 버전에서 MultiDex 설정후에 시작 액티비티를 찾을 수 없다는 ClassNotFoundException이 발생함. 같은 이슈 : https://github.com/opendatakit/collect/issues/387 애플리케이션 클래스에 아래 코드 추가 @Override protected void attachBaseContext(Context base) { super.attachBaseContext(base); MultiDex.install(this); } 참고 : https://github.com/srsudar/MamasDelRioAndroid/blob/master/app/src/main/java/org/mamasdelrio/android/application/Collec..
안드로이드 스튜디오에서 C, C++코드를 CMake를 이용한 빌드하기. ndk build도 사용 가능. 미흡하지만 LLDB라는 네이티브 디버거도 이용할 수 있음. 요구사항 안드로이드 스튜디오 버전 2.2 이상 안드로이드 그래들 플러그인 버전 2.2 이상 The Android Native Development Kit(NDK)와 빌드 툴들 다운로드 하기 NDK : 안드로이드에서 C, C++코드를 사용하게 해주는 툴셋, 플랫폼 라이브러리, 네이티브 액티비티, 센서나 터치 같은 물리적인 디바이스 컴포넌트를 제공함. CMake : 그래들과 함께 네이티브 라이브러리를 빌드 할때 사용함. ndk-build를 하려면 필요하지 않음. LLDB : 안드로이드 스튜디오로 네이티브 코드를 디버깅하는 도구 SDK매니저를 이용해..
dagger2로 realm 을 의존성 주입하는 예제 의존성 주입에 대한 설명은 위키피디아를 참조하시면 됩니다. dagger2은 square에서 만든 dagger1을 구글이 계속 만들면서 현재는 2.6버전까지 나왔습니다. dagger2는 정적이며 컴파일 타임에 디펜던시 인젝션을 제공하는 자바 프레임워크입니다. dagger2에서 중요하다고 생각되는 어노테이션은 다음과 같습니다. @Module : 주입된 객체들을 제공하는 메소드들을 모아놓은 클래스입니다. @Provide로 정의된 메소드에서 주입된 객체들을 어떻게 생성할지 정의하고 있습니다. @Provide : @Module 어노테이션이 포함된 클래스에 정의되며, 의존성을 주입해줄 객체를 제공할 메소드를 정의해주는데 사용합니다. @Component : 이 어노..
안드로이드 스튜디오 2.2로 업데이트 후 빌드 툴 2.2.0-alpha1 에서 오류남. classpath 'com.android.tools.build:gradle:2.2.0-alpha1' android.view.InflateException: Binary XML file line #40: Error inflating class EditText at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:770) at android.view.LayoutInflater.rInflate(LayoutInflater.java:813) at android.view.LayoutInflater.rInflate(LayoutInflater.java:821) a..
액티비티에 뷰페이저를 넣고 해당 인덱스의 fragment를 가져와서 사용하고 싶을 때index에 해당 숫자를 넣어주면됨 Fragment fragment = getSupportFragmentManager() .findFragmentByTag("android:switcher:" + R.id.viewpager + ":" + index);