Как мне добавить сгенерированный источник для отладки / выпуска в Android Gradle?

#gradle #android-gradle-plugin

#gradle #android-gradle-plugin

Вопрос:

У меня есть следующая запись sourceSet. Каждый каталог содержит автоматически созданные исходные файлы Java, которые должны быть скомпилированы для каждой соответствующей сборки debug / release.

 sourceSets {
    debug {
        java.srcDirs = [generatedDebugCodeDir]
    }

    release {
        java.srcDirs = [generatedReleaseCodeDir]
    }
}
 

Однако я не вижу каталогов, добавленных в classpath (с помощью флага —debug Gradle). Как мне решить эту проблему? Я попробовал java.srcDir (без S), который даже не распознается.

Одним из решений, которое я рассматриваю, является просто создание файлов в соответствующих сгенерированных каталогах BuildConfig. Надеюсь, нет никакого сумасшедшего побочного эффекта.

Ответ №1:

Оказывается, мне будет лучше использовать java.srcDirs, специфичный для Java.srcDirs. Эта настройка сработала для меня.

     flavor1Debug{
        java.srcDirs = ["${generatedJavaDirRoot}/flavor1/debug/"]
    }
    flavor1Release{
        java.srcDirs = ["${generatedJavaDirRoot}/flavor1/release/"]
    }
    flavor2Debug{
        java.srcDirs = ["${generatedJavaDirRoot}/flavor2/debug/"]
    }
    flavor2Release{
        java.srcDirs = ["${generatedJavaDirRoot}/flavor2/release/"]
    }