Подтвердить что ты не робот

Ароматы продуктов Android не учитываются при использовании CPU ABI split в build.gradle

Я хочу сделать разбиение APK на основе CPU ABI в соответствии с http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits, однако я хочу разбить APK только на определенный вкус продукта.

Таким образом, мой файл build.gradle имеет следующие атрибуты продукта plain и market. На самом деле я хочу, чтобы разделение APK выполнялось при создании market вкуса.

android {
    productFlavors {
        plain {
        }
        market {
            splits {
                abi {
                    enable true
                    reset()
                    include 'armeabi', 'armeabi-v7a', 'x86', 'mips'
                    universalApk true
                }
            }
        }
    }
}

Однако, когда я вызываю gradle assemblePlainDebug и assembleMarketDebug, оба из них создают несколько APK. Что-то не так с конфигурацией выше?

Я использую com.android.tools.build:gradle:1.2.3.

4b9b3361

Ответ 1

Я искал способ сделать это некоторое время и не нашел твердого решения. Что-то делать с расколами, которые нужно запустить, прежде чем разрешать buildTypes и productFlavors.

Android Gradle - это использование разделов только для возможности выпуска? у вопроса был ответ, который я считал полезным. Он в основном полагается на свойство проекта, переданное при построении через командную строку или непрерывную интеграцию, для установки погоды, когда включена опция split apk.

Я использовал его следующим образом:

splits {
    abi {
        enable project.hasProperty('splitApk')
        reset()
        include 'x86', 'armeabi-v7a', 'mips', 'armeabi'
        universalApk true
    }
}

а затем в зависимости от того, какой тип falvour или типа сборки вы строите, вы можете включить:

./gradlew --project-prop splitApk assembleMarketDebug

Это должно только включить расщепление apk, когда явно указано тоже, и должно оставаться отключенным для всего остального.