개인적인 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

 

+ Recent posts