簡體   English   中英

Android Gradle - 是否僅在發布時使用拆分?

[英]Android Gradle - is use splits only for release possible?

我希望“abi”使用“splits”,但僅限於發布版本。 這可能嗎? 我嘗試使用ext變量和變量“def”也默認設置為false。 對於releaseWithLog(和release),此變量在buildTypes中設置為true。

但是我不知道Gradle是如何工作的,因為當我將帶有測試消息的writeln()添加到“debug”,“releaseWithLog”和“release”並運行build時,所有消息都在輸出中,所以這確認了變量“splitsEnabled” “雖然我為調試構建了,但是設置為true - 我希望調試的值為”false“(因此不使用拆分進行調試)。

apply plugin: 'com.android.application'

android {
    compileSdkVersion 19
    buildToolsVersion '20.0.0'
    ext {
        splitsEnabled = false
    }
    defaultConfig {
    ...
    }
    buildTypes {
        debug {
            ...
        }
        releaseWithLog {
            ...
            splitsEnabled = true
        }
        release.initWith(releaseWithLog)
        release {
            ...
        }
    }
    ...
    splits {
        abi {
            println(splitsEnabled)
            enable splitsEnabled
            reset()
            include 'x86', 'armeabi-v7a', 'armeabi'
            exclude 'x86_64', 'mips64', 'arm64-v8a', 'mips'
            universalApk true
        }
    }
    ... 

您可以使用Gradle的命令行參數或Android Studio中Gradle任務的“腳本參數:”字段輕松解決此問題。 我使用-P來定義'dbgBld'符號並將其用於調試構建,例如:

gradle -PdbgBld installDebug

我的build.gradle文件有以下splits命令:

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

現在構建版本我使用:

gradle assembleRelease

'dbgBld'符號未定義,因此splits enable字段解析為true,我得到5個APK文件。 在構建調試時,-PdbgBld已經保存在我的Android Studio配置中,並且我只獲得一個“胖”APK用於調試,這導致更快的調試構建。

格雷格

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM