Search code examples
android-studioandroid-gradle-plugingradle-kotlin-dsl

android studio go to declaration not working for buildSrc


I am following this tutorial to do Gradle Dependency Management: Using Kotlin and buildSrc for build.gradle Autocomplete in Android Studio

in Dependencies.kt file

    object Versions {
        const val support_lib = "22.0.0"
        const val kotlin_version = "1.3.30"
        const val lifecycle_version = "1.1.1"
        const val rxjava_version = "2.2.8"
        const val rxandroid_version = "2.1.1"
    }

    object Modules{
        const val app = ":app"
        const val core = ":core"
    }

    object Libs {
        val support_appcompat_v7 = "com.android.support:appcompat-v7:${Versions.support_lib}"
        val constraint_layout = "com.android.support.constraint:constraint-layout:1.1.3"
        val lifecycle_extensions = "android.arch.lifecycle:extensions:${Versions.lifecycle_version}"
        val kotlin = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin_version}"
        val rxjava2_rxjava = "io.reactivex.rxjava2:rxjava:${Versions.rxjava_version}"
        val rxjava2_rxandroid = "io.reactivex.rxjava2:rxandroid:${Versions.rxandroid_version}"

}

in app build.gradle:

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.example."
        minSdkVersion 23
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
    }    
    kapt {
        generateStubs = true
    }
}

dependencies {

    implementation project(Modules.core)

    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation Libs.support_appcompat_v7
    implementation Libs.constraint_layout
    implementation Libs.lifecycle_extensions

    implementation Libs.kotlin
    implementation Libs.rxjava2_rxjava
    implementation Libs.rxjava2_rxandroid
    }

repositories {
    mavenCentral()
}

project compile and build success, but when I try to go to deceleration from app build.gradle too dependencies.kt, it shows

enter image description here


Solution

  • Firstly, you need to migrate your groovy gradle to kotlin dsl. Only then can you access Kotlin class like Dependencies.kt.

    Second, You have to import the Dependencies.kt file in your build.gradle.kts just like you import classes in java.

    Add the following line at the beginning of your build.gradle

    import <package_name>.Dependencies.*