진짜 오랜만에 안드로이드로 뭔가 개발 하려고 했더니... 개발 환경이 너무 많이 바뀌었다.
일단 안드로이드 디벨로퍼 기린을 받았는데
kotlin 도 모르겠고 gradle 도 모르겠고.... gradle.kts 는 또 뭐냐..
정말 하나도 모르겠다! 얏호!
네비게이션 드로어 뷰를 템플릿으로 선택해서 프로젝트를 생성한 다음... 커스텀 달력을 만들려고 했다.
일단 custom calendar 를 써 볼려고 material-calendarview 라이브러리를 쓰려고 했는데 .... 일단 그냥 막혔다.
https://github.com/prolificinteractive/material-calendarview
github 에 갔더니... 이거 부터 하라는데 어따가 하는거지...
github 에서 라이브러리를 가져 오려면 jitpack 이 있어야 하나 보다.
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Gradle Scripts 하위에 보면 setting.gradle.kts 라는 파일이 있다
거길 보면 dependencyResolutionManagement 라는 부분이 있는데 거기에다가 좀 바꿔서 넣어야 한다.
시킨대로 붙여 넣으면 아래와 같은 오류가 발생한다. 뭔지 모르겠는데 문법이 다른가 보다. 내가 뭘 하는지 모르겠네..
Unexpected tokens (use ';' to separate expressions on the same line)
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
maven { url = uri("https://jitpack.io") }
}
}
이제 진짜 라이브러리를 가져 오자.
build.gradle.kts 파일에다가 붙여 넣자.
dependencies {
implementation 'com.github.prolificinteractive:material-calendarview:2.0.1'
}
파일을 바꾸면 우상단에 Sync Now 라는 글자를 누르면 라이브러를 가져 온다.
어찌저찌 해서 AVD 실행까지 눌렀다. 그랬더니.....
Execution failed for task ':app:checkDebugDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-27.0.2-runtime (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-27.0.2-runtime (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.app.INotificationSideChannel$Stub$Proxy found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-27.0.2-runtime (com.android.support:support-compat:27.0.2)
Duplicate class android.support.v4.os.IResultReceiver found in modules core-1.9.0-runtime (androidx.core:core:1.9.0) and support-compat-27.0.2-runtime (com.android.support:support-compat:27.0.2)
m.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
.....
괴롭다...
외부 라이러리와 충돌이 나는 거라고 한다. 충돌을 피하려면 뭔가 설정 추가해 줘야 한다.
gradle.properties 파일을 까서 아래 부분을 추가하자.
android.enableJetifier=true
레이아웃에 달력을 껴 넣어 보자.
<com.prolificinteractive.materialcalendarview.MaterialCalendarView
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/calendarView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:mcv_showOtherDates="all"
app:mcv_selectionColor="#00F"
app:layout_constraintTop_toBottomOf="@+id/text_home"
/>
constraintLayout ... 이건 또 뭐냐.. top, bottom 이런거 셋팅 안 해 주면 빨간줄 긋는다.. 짜잉..
이제 겨우 깡통 달력 하나 띄웠네... ㅠ
댓글