Как создать apk с несколькими вариантами, выборочно связывая библиотеку зависимостей? - PullRequest
1 голос
/ 08 февраля 2020
Приложение

My android зависит от нескольких библиотек android (скажем, A, B, C, D). Я хотел бы генерировать различные apks из них, скажем, apk1 должен потреблять только на A, B и apk2 должен потреблять B, C.

Я исследовал вариант Android 's product product концепция, сделав что-то вроде этого,

android {
    ...
    defaultConfig {...}
    buildTypes {
        debug{...}
        release{...}
    }
    // Specifies one flavor dimension.
    flavorDimensions "version"
    productFlavors {
        demo {
            // Assigns this product flavor to the "version" flavor dimension.
            // If you are using only one dimension, this property is optional,
            // and the plugin automatically assigns all the module's flavors to
            // that dimension.
            dimension "version"
            applicationIdSuffix ".demo"
            versionNameSuffix "-demo"
        }
        full {
            dimension "version"
            applicationIdSuffix ".full"
            versionNameSuffix "-full"
        }
    }
}

Теперь он генерирует apks с несколькими продуктами, но включает все библиотеки для каждого аромата. Как я могу избежать этого?

1 Ответ

1 голос
/ 08 февраля 2020

Используйте директивы ароматизатора c для вашего dependencies. Например, вместо implementation вы бы использовали demoImplementation и fullImplementation. Сборки demo будут включать в себя зависимости demoImplementation, тогда как сборки full будут включать зависимости fullImplementation.

Страница документации , на которую вы ссылаетесь , показывает пример использования free вкус:

dependencies {
    // Adds the local "mylibrary" module as a dependency to the "free" flavor.
    freeImplementation project(":mylibrary")

    // Adds a remote binary dependency only for local tests.
    testImplementation 'junit:junit:4.12'

    // Adds a remote binary dependency only for the instrumented test APK.
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...