Preciso descobrir como obter ou criar um número de compilação para o meu aplicativo Android. Eu preciso do número da compilação para exibir na interface do usuário.
Eu tenho que fazer alguma coisa AndroidManifest.xml
?
android
android-emulator
android-manifest
Fahad Ali Shaikh
fonte
fonte
int versionCode = BuildConfig.VERSION_CODE;
e obtenha o nome da versãoString versionName = BuildConfig.VERSION_NAME;
Respostas:
Usar:
E você pode obter o código da versão usando este
fonte
try... catch..
quandogetPackageInfo()
BuildConfig.VERSION_**
como sugerido aqui .Se você estiver usando o plug-in Gradle / Android Studio, a partir da versão 0.7.0 , o código e o nome da versão estarão disponíveis estaticamente
BuildConfig
. Certifique-se de importar o pacote do seu aplicativo , e não outroBuildConfig
:Nenhum objeto de contexto é necessário!
Também certifique-se de especificá-los em seu
build.gradle
arquivo em vez deAndroidManifest.xml
.fonte
versionName
para o seu aplicativo no seubuild.gradle
arquivo.import com.yourapppackage.android.BuildConfig
Versão ligeiramente mais curta se você quiser apenas o nome da versão.
fonte
Há duas partes que você precisa: android: versionCode android: versionName
versionCode é um número e todas as versões do aplicativo enviadas ao Market precisam ter um número maior que o último.
VersionName é uma string e pode ser o que você quiser. É aqui que você define seu aplicativo como "1.0" ou "2.5" ou "2 Alpha EXTREME!" como queiras.
Exemplo:
Kotlin:
Java:
fonte
android:versionCode
eandroid:versionName
pode ser encontrada aqui: developer.android.com/tools/publishing/...this.getPackageName()
representa o0
que você acabou de cuspir não tem nenhuma pista sobre o significadoUsando Gradle e BuildConfig
Obtendo o VERSION_NAME do BuildConfig
Sim, é tão fácil agora.
Está retornando uma string vazia para VERSION_NAME?
Se você estiver recebendo uma sequência vazia
BuildConfig.VERSION_NAME
, continue lendo.Eu continuava recebendo uma string vazia
BuildConfig.VERSION_NAME
porque não estava definindo oversionName
arquivo de compilação Grade (eu migrei do ANT para o Gradle). Então, aqui estão as instruções para garantir que você está configurando suaVERSION_NAME
via Gradle.build.gradle
Nota: Isto é do mestre Jake Wharton .
Removendo
versionName
eversionCode
deAndroidManifest.xml
E como você definiu o arquivo
versionName
eversionCode
nobuild.gradle
arquivo agora, também pode removê-los doAndroidManifest.xml
arquivo, se houver.fonte
versionName "1.2"
, eBuildConfig.VERSION_NAME
retorneempty
. API> 21versionCode
eversionName
, respectivamente. Somente porque algumas ferramentas como o Code Push tentam obter o número da sua versão analisando seubuild.gradle
arquivo e elas não conseguem atingir um valor dinâmico.Aqui está uma solução limpa , baseada na solução de scottyab (editada por Xavi). Ele mostra como obter o contexto primeiro, se não for fornecido pelo seu método. Além disso, ele usa várias linhas em vez de chamar vários métodos por linha. Isso facilita quando você precisa depurar seu aplicativo.
Agora que você recebeu o nome da versão na String
myVersionName
, pode configurá-lo para um TextView ou o que quiser.fonte
Throws PackageManager.NameNotFoundException if a package with the given name can not be found on the system.
. No entanto, eu não conseguia imaginar um cenário para isso!Para obter a versão do aplicativo ou criar o código usado para identificar o apk pelo seu código de versão. O código da versão é usado para detectar a configuração de compilação real no momento da atualização, publicação etc.
O nome da versão é usado para mostrar os usuários ou os desenvolvedores da sequência de desenvolvimento. Você pode adicionar qualquer tipo de nome de versão como desejar
fonte
Use a classe BuildConfig
build.gradle (aplicativo)
fonte
Se você estiver usando o PhoneGap, crie um plug-in PhoneGap personalizado:
Crie uma nova classe no pacote do seu aplicativo:
No plugins.xml, adicione a seguinte linha:
No seu evento de deviceready , adicione o seguinte código:
Em seguida, você pode obter o atributo versionName fazendo:
Derivado daqui e aqui .
fonte
One-liners Kotlin
Certifique-se de importar
BuildConfig
para sua classefonte
Para usuários do xamarin, use este código para obter o nome e o código da versão
1) Nome da versão:
2) Código da versão:
fonte
Se você quiser usá-lo no xml, adicione a linha abaixo no seu arquivo gradle:
E então use-o no seu xml assim:
fonte
Não, você não precisa fazer nada com o AndroidManifest.xml
Basicamente, o nome da versão do aplicativo e o código da versão no arquivo gradle no nível do aplicativo , na tag defaultConfig :
Nota: Quando você deseja fazer o upload do aplicativo no playstore, pode atribuir qualquer nome como nome da versão, mas o código da versão deve ser diferente do código da versão atual, se esse aplicativo já estiver na play store.
Basta usar o seguinte snippet de código para obter o código e o nome da versão de qualquer lugar do seu aplicativo:
fonte
para a Api 28, o PackageInfo.versionCode está obsoleto, portanto, use este código abaixo:
fonte
Sempre faça isso com o
try catch
bloco:fonte
Aqui está o método para obter o código da versão:
fonte
Eu resolvi isso usando a classe Preference.
fonte
Existem algumas maneiras de obter
versionCode
eversionName
programaticamente.PackageManager
. Essa é a melhor maneira para a maioria dos casos.BuildConfig.java
. Mas observe que, se você acessar esses valores na biblioteca, ele retornará a versão da biblioteca, não os aplicativos um, que usa essa biblioteca. Portanto, use apenas em projetos que não são de biblioteca!Existem alguns detalhes, exceto o uso de segunda via no projeto da biblioteca. No novo plugin Android Gradle (3.0.0+), algumas funcionalidades foram removidas . Então, por enquanto, ou seja, definindo uma versão diferente para diferentes sabores, não está funcionando corretamente.
Maneira incorreta:
O código acima definirá os valores corretamente
BuildConfig
, masPackageManager
você receberá0
e,null
se não tiver definido a versão nadefault
configuração. Portanto, seu aplicativo terá0
código de versão no dispositivo.Existe uma solução alternativa - defina a versão para o
apk
arquivo de saída manualmente:fonte
Este código foi mencionado acima em partes, mas aqui está novamente tudo incluído. Você precisa de um bloco try / catch porque ele pode gerar uma "NameNotFoundException".
Espero que isso simplifique as coisas para alguém no caminho. :)
fonte
Alguém que não precisa das informações do BuildConfig para a interface do usuário do aplicativo, no entanto, deseja usá-las para definir uma configuração de tarefa de IC ou outras pessoas, como eu.
Há um arquivo gerado automaticamente, BuildConfig.java, no diretório do projeto, desde que você construa o projeto com êxito.
{WORKSPACE} / build / gerados / source / buildConfig / {debug | release} / {PACKAGE} /BuildConfig.java
Divida as informações necessárias por script python ou outras ferramentas. Aqui está um exemplo:
Desculpe minha capacidade limitada de inglês, mas espero que isso ajude.
fonte
fonte
tente este:
fonte
Primeiro:
e depois use isso:
fonte
fonte
Exemplo para uso interno do fragmento.
fonte
Exemplo de Kotlin:
Não agradeça :-)
fonte
fonte
Como eu precisava obter apenas o código da versão e verificar se o aplicativo está atualizado ou não, se sim, tive que iniciar o playstore para atualizar um. Eu fiz assim.
Em seguida, salvei o código da versão usando preferência compartilhada, criando uma classe util.
fonte
Como em 2020: a API 28 "versionCode" foi descontinuada, para que possamos usar "longVersionCode"
Código de exemplo no kotlin
fonte
Útil para sistemas de compilação: existe um arquivo gerado com seu apk chamado,
output.json
que contém uma matriz de informações para cada APK gerado, incluindo o versionName e o versionCode.por exemplo
fonte