Muszę dowiedzieć się, jak uzyskać lub utworzyć numer kompilacji dla mojej aplikacji na Androida. Potrzebuję numeru kompilacji do wyświetlenia w interfejsie użytkownika.
Czy muszę coś z tym zrobić AndroidManifest.xml
?
android
android-emulator
android-manifest
Fahad Ali Shaikh
źródło
źródło
int versionCode = BuildConfig.VERSION_CODE;
nazwy wersjiString versionName = BuildConfig.VERSION_NAME;
Odpowiedzi:
Posługiwać się:
Za pomocą tego możesz uzyskać kod wersji
źródło
try... catch..
kiedygetPackageInfo()
BuildConfig.VERSION_**
zgodnie z sugestią tutaj .Jeśli używasz wtyczki Gradle / Android Studio, od wersji 0.7.0 kod wersji i nazwa wersji są dostępne statycznie w
BuildConfig
. Upewnij się, że importujesz pakiet aplikacji , a nie innyBuildConfig
:Nie potrzebny obiekt kontekstowy!
Upewnij się również, że określono je w
build.gradle
pliku zamiastAndroidManifest.xml
.źródło
versionName
wbuild.gradle
pliku określono opcję dla swojej aplikacji .import com.yourapppackage.android.BuildConfig
Nieco krótsza wersja, jeśli chcesz tylko nazwę wersji.
źródło
Potrzebne są dwie części: android: wersjaKod android: wersjaNazwa
versionCode to liczba i każda wersja aplikacji przesłanej do usługi Market musi mieć wyższą liczbę niż ostatnia.
VersionName jest ciągiem znaków i może być dowolną wartością. Tutaj definiujesz swoją aplikację jako „1.0”, „2.5” lub „2 Alpha EXTREME!” lub cokolwiek.
Przykład:
Kotlin:
Jawa:
źródło
android:versionCode
iandroid:versionName
można go znaleźć tutaj: developer.android.com/tools/publishing/…this.getPackageName()
reprezentuje to,0
co po prostu naplułem, nie ma pojęcia o znaczeniuKorzystanie z Gradle i BuildConfig
Pobieranie VERSION_NAME z BuildConfig
Tak, teraz to takie proste.
Czy zwraca pusty ciąg dla VERSION_NAME?
Jeśli otrzymujesz pusty ciąg znaków,
BuildConfig.VERSION_NAME
czytaj dalej.Ciągle otrzymywałem pusty ciąg,
BuildConfig.VERSION_NAME
ponieważ nieversionName
ustawiałem pliku kompilacji Grade (migrowałem z ANT do Gradle). Oto instrukcje, jak upewnić się, że ustawiaszVERSION_NAME
za pośrednictwem Gradle.build.gradle
Uwaga: pochodzi od mistrzowskiego Jake'a Whartona .
Usuwanie
versionName
iversionCode
zAndroidManifest.xml
A ponieważ teraz ustawiłeś plik
versionName
iversionCode
wbuild.gradle
pliku, możesz również usunąć je ze swojegoAndroidManifest.xml
pliku, jeśli tam są.źródło
versionName "1.2"
iBuildConfig.VERSION_NAME
wróćempty
. API> 21versionCode
iversionName
. Tylko dlatego, że niektóre narzędzia, takie jak Code Push, próbują uzyskać numer wersji podczas analizowaniabuild.gradle
pliku i nie mogą uzyskać pełnej wartości dynamicznej.Oto czyste rozwiązanie oparte na rozwiązaniu scottyab (pod redakcją Xavi). Pokazuje, jak najpierw uzyskać kontekst, jeśli nie jest udostępniony przez twoją metodę. Ponadto wykorzystuje wiele linii zamiast wywoływać wiele metod na linię. Ułatwia to debugowanie aplikacji.
Teraz, gdy otrzymałeś nazwę wersji w ciągu
myVersionName
, możesz ustawić ją na TextView lub cokolwiek chcesz.źródło
Throws PackageManager.NameNotFoundException if a package with the given name can not be found on the system.
. Nie wyobrażam sobie jednak takiego scenariusza!Aby uzyskać wersję aplikacji lub kod kompilacji, który służy do identyfikowania apka według kodu wersji. Kod wersji służy do wykrywania faktycznej konfiguracji kompilacji w momencie aktualizacji, publikacji itp.
Nazwa wersji służy do wyświetlania użytkowników lub programistów sekwencji programowania. Możesz dodać dowolną nazwę wersji, jak chcesz
źródło
Użyj klasy BuildConfig
build.gradle (aplikacja)
źródło
Jeśli używasz PhoneGap, utwórz niestandardową wtyczkę PhoneGap:
Utwórz nową klasę w pakiecie aplikacji:
W plugins.xml dodaj następujący wiersz:
W zdarzeniu już przygotowanym do urządzenia dodaj następujący kod:
Następnie można uzyskać atrybut versionName, wykonując:
Pochodzi tu i tutaj .
źródło
Jedlinianki Kotlin
Pamiętaj, aby zaimportować
BuildConfig
do swojej klasyźródło
W przypadku użytkowników Xamarin użyj tego kodu, aby uzyskać nazwę i kod wersji
1) Nazwa wersji:
2) Kod wersji:
źródło
Jeśli chcesz go użyć na xml, dodaj poniższy wiersz do pliku gradle:
A następnie użyj go na swoim xml w następujący sposób:
źródło
Nie, nie musisz nic robić z AndroidManifest.xml
Zasadniczo nazwa wersji aplikacji i kod wersji w pliku ocen poziomu aplikacji , pod tagiem defaultConfig :
Uwaga: jeśli chcesz załadować aplikację w sklepie playstore, możesz podać dowolną nazwę jako nazwę wersji, ale kod wersji musi być inny niż bieżący kod wersji, jeśli ta aplikacja jest już w sklepie Play.
Wystarczy użyć następującego fragmentu kodu, aby uzyskać kod wersji i nazwę wersji z dowolnego miejsca w aplikacji:
źródło
w przypadku interfejsu API 28 PackageInfo.versionCode jest przestarzały, więc użyj tego kodu poniżej:
źródło
Zawsze rób to z
try catch
blokiem:źródło
Oto metoda uzyskania kodu wersji:
źródło
Rozwiązałem to za pomocą klasy preferencji.
źródło
Istnieje kilka sposobów na uzyskanie
versionCode
iversionName
programowo.PackageManager
. Jest to najlepszy sposób w większości przypadków.BuildConfig.java
. Ale zauważ, że jeśli uzyskasz dostęp do tych wartości w bibliotece, zwróci wersję biblioteki, a nie aplikacji, która korzysta z tej biblioteki. Dlatego używaj tylko w projektach niebibliotecznych!Istnieje kilka szczegółów, z wyjątkiem użycia drugiego sposobu w projekcie biblioteki. W nowej wtyczce stopniowej Androida (3.0.0+) niektóre funkcje zostały usunięte . Na razie, tj. Ustawienie innej wersji dla różnych smaków nie działa poprawnie.
Niepoprawny sposób:
Powyższy kod poprawnie ustawi wartości w
BuildConfig
, ale odPackageManager
otrzymasz0
inull
jeśli nie ustawiłeś wersji wdefault
konfiguracji. Twoja aplikacja będzie mieć0
kod wersji na urządzeniu.Istnieje obejście -
apk
ręczne ustawienie wersji pliku wyjściowego :źródło
Ten kod został wspomniany powyżej w częściach, ale tutaj jest ponownie uwzględniony. Potrzebujesz bloku try / catch, ponieważ może on wygenerować „NameNotFoundException”.
Mam nadzieję, że uprości to komuś na drodze. :)
źródło
Ktoś, kto nie potrzebuje informacji BuildConfig dla interfejsu użytkownika aplikacji, chce jednak użyć tych informacji do ustawienia konfiguracji zadania CI lub innych, takich jak ja.
W katalogu projektu znajduje się automatycznie wygenerowany plik BuildConfig.java, o ile pomyślnie zbudujesz projekt.
{WORKSPACE} / build / wygenerowane / source / buildConfig / {debug | release} / {PACKAGE} /BuildConfig.java
Podziel potrzebne informacje według skryptu Python lub innych narzędzi. Oto przykład:
Proszę wybaczyć moją ograniczoną znajomość języka angielskiego, ale mam nadzieję, że to pomoże.
źródło
źródło
Spróbuj tego:
źródło
Pierwszy:
a następnie użyj tego:
źródło
źródło
Przykład użycia fragmentu wewnątrz.
źródło
Przykład Kotlina:
Nie dziękuj :-)
źródło
źródło
Ponieważ musiałem uzyskać tylko kod wersji i sprawdzić, czy aplikacja jest zaktualizowana, czy nie, jeśli tak, musiałem uruchomić playstore, aby go zaktualizować. Zrobiłem w ten sposób.
Następnie zapisałem kod wersji, korzystając z preferencji wspólnych, tworząc klasę util.
źródło
Podobnie jak w 2020 r .: API 28 „versionCode” jest przestarzałe, więc możemy użyć „longVersionCode”
Przykładowy kod w kotlin
źródło
Przydatny w systemach kompilacji: plik o nazwie generowany jest z apk
output.json
który zawiera tablicę informacji dla każdego wygenerowanego APK, w tym nazwę wersji i kod wersji.na przykład
źródło