ho incontrato un problema simile, ma non ha voluto modificare il versionName per includere il git hash. Volevamo tenerlo come qualcosa come 1.2.2, ma ho ancora la possibilità di visualizzare l'hash git nell'interfaccia utente.
Ho modificato il codice da the other answer here per utilizzare l'attività buildConfigField per generare un valore BuildConfig.GitHash a cui è possibile fare riferimento nel codice Java.
Aggiungere questo sopra la sezione android
di file di build.gradle del vostro modulo:
def getGitHash = { ->
def stdout = new ByteArrayOutputStream()
exec {
commandLine 'git', 'rev-parse', '--short', 'HEAD'
standardOutput = stdout
}
return stdout.toString().trim()
}
quindi aggiungere la seguente riga alla sezione defaultConfig
della sezione android
del build.gradle, vale a dire al di sotto versionName
:
buildConfigField "String", "GitHash", "\"${getGitHash()}\""
Questo genera la seguente riga nel file BuildConfig.java generato automaticamente:
// Fields from default config.
public static final String GitHash = "e61af97";
Ora è possibile ottenere l'hash git nel codice Java con BuildConfig.GitHash
.
HI, sto ricevendo questo errore: errore CreateProcess = 2, Il sistema non riesce a trovare il file specificato, qualsiasi lead il mio co-debase è su GitLabs – Haroon
@Haroon: Controlla che il percorso di git sia nella variabile di ambiente PATH . Controlla questo aprendo un nuovo prompt dei comandi/terminale e digitando "git --version" – Paul
Grazie a @Paul esattamente quello che hai scritto ho fatto, ho appena reso disponibile la git alla variabile di ambiente – Haroon