개인적인 trobleshooting 경험. 정리는 안되어있음 의식의 흐름대로.
누구에게는 바보 같을 수도, 누구에게는 한 줄기 빛이 될수도.
멀티모듈 설정시 build-logic / convention / build.gradle.kts 에서 오류 발생
gradle catalog 적용 테스트겸.
FAILURE: Build failed with an exception. * What went wrong: Cannot convert the provided notation to an object of type Dependency: com.android.application:8.6.0. The following types/formats are supported: - String or CharSequence values, for example 'org.gradle:gradle-core:1.0'. - Maps, for example [group: 'org.gradle', name: 'gradle-core', version: '1.0']. - FileCollections, for example files('some.jar', 'someOther.jar'). - Projects, for example project(':some:project:path'). - ClassPathNotation, for example gradleApi(). Comprehensive documentation on dependency notations is available in DSL reference for DependencyHandler type. |
UnsupportedNotationException? ExternalSystemException?
* Exception is: com.intellij.openapi.externalSystem.model.ExternalSystemException: Cannot convert the provided notation to an object of type Dependency: com.android.application:8.6.0. The following types/formats are supported: - String or CharSequence values, for example 'org.gradle:gradle-core:1.0'. - Maps, for example [group: 'org.gradle', name: 'gradle-core', version: '1.0']. - FileCollections, for example files('some.jar', 'someOther.jar'). - Projects, for example project(':some:project:path'). - ClassPathNotation, for example gradleApi(). |
org.gradle.internal.typeconversion.UnsupportedNotationException: Cannot convert the provided notation to an object of type Dependency: com.android.application:8.6.0. The following types/formats are supported: - String or CharSequence values, for example 'org.gradle:gradle-core:1.0'. - Maps, for example [group: 'org.gradle', name: 'gradle-core', version: '1.0']. - FileCollections, for example files('some.jar', 'someOther.jar'). - Projects, for example project(':some:project:path'). - ClassPathNotation, for example gradleApi(). |
1. kotlin-dsl 인데 뭔소리냐?
2. toml 파일에서 오타가 났나? -> No
3. 구글검색 -> 진짜 듣도보도 못한 exception.. 정보도 거의없음
4. 검색어가 잘못됐나? -> kotlin-dsl 관련으로 검색 -> 오 1개 찾음
1. Find gradlew in your project root folder. 2. Right click on it, then open in -> terminal. 3. Write ./gradlew tasks command and enter. 4. If showing any error in your build.gradle file then fix it and rerun ./gradlew tasks command until all errors are solved and you can see BUILD SUCCESSFUL. Now sync your gradle file. |
한번해보자.
앱모듈에서 에러
* What went wrong: An exception occurred applying plugin request [id: 'com.android.application', version: '8.6.0'] > Failed to apply plugin 'com.android.internal.application'. > Android Gradle plugin requires Java 17 to run. You are currently using Java 11. Your current JDK is located in C:\Program Files\Amazon Corretto\jdk11.0.21_9 You can try some of the following options: - changing the IDE settings. - changing the JAVA_HOME environment variable. - changing `org.gradle.java.home` in `gradle.properties`. |
Android Studio / Setting / build / gradle 설정은 jdk 17사용인데? ->
일단 JAVA_HOME 을 바꿔줌(AGP 8.6.0이므로 이때까지는..) ->
앱모듈 오류는 사라짐 -> 다시 gradle sync -> OP 해결안됨;;;
중간에 시도해 본것
1. dependencies{} 블럭에 라이브러리 maven에서 찾아서 수정. 플러그인으로 넣고 있었음;;
2. AGP 8.5.1로 수정 -> Android Studio Koalla 는 여기까지 지원. 이후 버전은 Koala Feature Drop 이 필요.
3. gradle 업데이트 8.10 -> 효과없었음
멘붕 오기 시작ㅋㅋ;;
그런데 build-logic 에서 추가한 파일들이 이상함.
1. depency를 추가했음에도 unresolved reference, 자동 import도 안뜸?
2. module not specified 에러 -> root레벨 setting.gradle 에서 include(":app") 제거
이거 하니까 자동 import가 동작함? -> unresolved reference 해결
plugin을 dependencies에 넣고 있어서 바꿔줌.
dependencies { compileOnly(libs.android.gradlePlugin) compileOnly(libs.android.tools.common) compileOnly(libs.kotlin.gradlePlugin) compileOnly(libs.ksp.gradlePlugin) } |
3. root레벨 setting.gradle 에서 include(":app") 추가
4. InvalidPluginException 발생? 오~ 뭔가 됐어?
-> 이 키워드로 검색
결론.
밑의 구조로 되어 있어야 한다.
나의 경우 build-logic / convention / src / main 수준에 plugin파일들이 존재 하고 있었음.
파일 수준을 build-logic / convention / src / main / kolin 으로 옮겨주니 IDE가 다~ 알아서 잡아줌. 빌드 성공.
뻘짓 8시간.
├── app │ └── build.gradle ├── build-logic │ ├── convention │ │ ├── build.gradle │ │ └── src │ │ └── main │ │ └── kotlin │ │ └── com.xx │ │ └── KotlinAndroid.kt │ │ └── AndroidConventionPlugin.kt │ └── settings.gradle └── settings.gradle |