all!Gradle get corrente build type
Sto cercando di ottenere Gradle per generare file diversi (Android.mk e Application.mk) per le build di rilascio e debug. Il modo predefinito, facendo il plugin gradle per Android, non mi va bene, perché non consente di modificare Application.mk, lo voglio. Il problema principale è che non riesco a identificare il tipo di build corrente. Ho provato la seguente:
android {
...
defaultConfig {
project['CONFIGURATION_FLAGS'] = ''
project['APP_ABI'] = ''
project['APP_PLATFORM'] = 'android-9'
project['APP_STL'] = 'gnustl_static'
project['NDK_TOOLCHAIN_VERSION'] = 'clang'
}
buildTypes {
release {
project['CONFIGURATION_FLAGS'] = '-fvisibility=hidden'
project['APP_ABI'] = 'armeabi x86'
}
debug {
project['CONFIGURATION_FLAGS'] = '-g -DDEBUG -DENABLE_LOG'
project['APP_ABI'] = 'armeabi'
}
}
}
task processTemplates {
def templatesDir = System.getProperty('user.dir') + '/app/templates'
def jniDir = System.getProperty('user.dir') + '/app/src/main/jni'
// Android.mk
def configFlags = project['CONFIGURATION_FLAGS']
def androidMk = file(templatesDir + '/Android.mk').text
androidMk = androidMk.replaceAll '<CONFIGURATION_FLAGS>', configFlags
def newAndroidMk = new File(jniDir + '/Android.mk')
newAndroidMk.text = androidMk
// Application.mk
def appAbi = project['APP_ABI']
def appPlatform = project['APP_PLATFORM']
def appStl = project['APP_STL']
def toolchain = project['NDK_TOOLCHAIN_VERSION']
def applicationMk = file(templatesDir + '/Application.mk').text
applicationMk = applicationMk.replaceAll '<APP_ABI>', appAbi
applicationMk = applicationMk.replaceAll '<APP_PLATFORM>', appPlatform
applicationMk = applicationMk.replaceAll '<APP_STL>', appStl
applicationMk = applicationMk.replaceAll '<NDK_TOOLCHAIN_VERSION>', toolchain
def newApplicationMk = new File(jniDir + '/Application.mk')
newApplicationMk.text = applicationMk
}
Ma scoperto che l'impostazione di parametri viene eseguita 2 volte, cioè per ogni tipo di costruzione, indipendentemente dal tipo di generazione corrente. Il che porta al fatto che per qualsiasi tipo di build imposta le opzioni di debug. Qualcuno può consigliarmi come risolvere questo problema?
https://groups.google.com/forum/#!topic/adt-dev/iSZuHNSdJHI – CommonsWare
possibile duplicato di [Come ottenere buildType corrente nella configurazione di Gradle Android] (http://stackoverflow.com/questions/ 25739163/how-to-get-current-buildtype-in-android-gradle-configuration) – bummi
Ho risposto qui: http://stackoverflow.com/a/42839705/468360 (soluzione più semplice) – Codeversed