Saya perlu mencari cara untuk mendapatkan atau membuat nomor build untuk aplikasi Android saya. Saya perlu nomor build untuk ditampilkan di UI.
Apakah saya harus melakukan sesuatu dengan AndroidManifest.xml
?
android
android-emulator
android-manifest
Fahad Ali Shaikh
sumber
sumber
int versionCode = BuildConfig.VERSION_CODE;
dan untuk mendapatkan nama versiString versionName = BuildConfig.VERSION_NAME;
Jawaban:
Menggunakan:
Dan Anda bisa mendapatkan kode versi dengan menggunakan ini
sumber
try... catch..
kapangetPackageInfo()
BuildConfig.VERSION_**
seperti yang disarankan di sini .Jika Anda menggunakan plugin Gradle / Android Studio, pada versi 0.7.0 , kode versi dan nama versi tersedia secara statis di
BuildConfig
. Pastikan Anda mengimpor paket aplikasi Anda , dan bukan yang lainBuildConfig
:Tidak diperlukan objek Konteks!
Pastikan juga untuk menentukannya di
build.gradle
file Anda, bukanAndroidManifest.xml
.sumber
versionName
aplikasi Anda dibuild.gradle
file Anda .import com.yourapppackage.android.BuildConfig
Versi sedikit lebih pendek jika Anda hanya ingin nama versi.
sumber
Ada dua bagian yang Anda butuhkan: android: versionCode android: versionName
versionCode adalah angka, dan setiap versi aplikasi yang Anda kirim ke Pasar harus memiliki angka yang lebih tinggi daripada yang terakhir.
VersionName adalah string, dan bisa berupa apa pun yang Anda inginkan. Di sinilah Anda mendefinisikan aplikasi Anda sebagai "1.0" atau "2.5" atau "2 Alpha EXTREME!" atau terserah.
Contoh:
Kotlin:
Jawa:
sumber
android:versionCode
danandroid:versionName
dapat ditemukan di sini: developer.android.com/tools/publishing/…this.getPackageName()
mewakili0
Anda hanya meludah tidak memiliki petunjuk tentang artinyaMenggunakan Gradle dan BuildConfig
Dapatkan VERSION_NAME dari BuildConfig
Yap, mudah sekarang.
Apakah Ini Mengembalikan String Kosong untuk VERSION_NAME?
Jika Anda mendapatkan string kosong untuk
BuildConfig.VERSION_NAME
kemudian baca terus.Saya terus mendapatkan string kosong
BuildConfig.VERSION_NAME
karena saya tidak mengaturversionName
file build Grade saya (saya bermigrasi dari ANT ke Gradle). Jadi, berikut adalah petunjuk untuk memastikan Anda mengaturVERSION_NAME
via Gradle.build.gradle
Catatan: Ini dari Jake Wharton yang ahli .
Menghapus
versionName
danversionCode
dariAndroidManifest.xml
Dan karena Anda telah mengatur
versionName
danversionCode
dalambuild.gradle
file sekarang, Anda juga dapat menghapusnya dariAndroidManifest.xml
file Anda , jika ada di sana.sumber
versionName "1.2"
,, danBuildConfig.VERSION_NAME
kembaliempty
. API> 21versionCode
danversionName
, masing-masing. Hanya karena beberapa alat seperti Code Push berusaha untuk mendapatkan nomor versi Anda dengan mem-parsingbuild.gradle
file Anda dan mereka tidak dapat memenuhi nilai dinamis.Berikut ini adalah solusi bersih , berdasarkan solusi scottyab (diedit oleh Xavi). Ini menunjukkan cara mendapatkan konteks terlebih dahulu, jika tidak disediakan oleh metode Anda. Selain itu menggunakan beberapa baris alih-alih memanggil beberapa metode per baris. Ini membuatnya lebih mudah ketika Anda harus men-debug aplikasi Anda.
Sekarang setelah Anda menerima nama versi dalam String
myVersionName
, Anda dapat mengaturnya ke TextView atau apa pun yang Anda suka ..sumber
Throws PackageManager.NameNotFoundException if a package with the given name can not be found on the system.
. Namun, saya tidak bisa membayangkan skenario untuk itu!Untuk mendapatkan versi aplikasi atau kode bangunan yang digunakan untuk mengidentifikasi apk dengan kode versinya. Kode versi digunakan untuk mendeteksi konfigurasi build aktual pada saat pembaruan, penerbitan, dll.
Nama versi digunakan untuk menunjukkan kepada pengguna atau pengembang dari urutan pengembangan. Anda dapat menambahkan segala jenis nama versi yang Anda inginkan
sumber
Gunakan kelas BuildConfig
build.gradle (aplikasi)
sumber
Jika Anda menggunakan PhoneGap, buatlah plugin PhoneGap khusus:
Buat kelas baru di paket aplikasi Anda:
Di plugins.xml, tambahkan baris berikut:
Dalam acara deviceready Anda , tambahkan kode berikut:
Kemudian, Anda bisa mendapatkan atribut versiName dengan melakukan:
Berasal dari sini dan sini .
sumber
Kotlin satu garis
Pastikan untuk mengimpor
BuildConfig
ke kelas Andasumber
Untuk pengguna xamarin, gunakan kode ini untuk mendapatkan nama versi dan kode
1) Nama Versi:
2) Kode Versi:
sumber
Jika Anda ingin menggunakannya di xml kemudian tambahkan baris di bawah ini pada file gradle Anda:
Dan kemudian gunakan di xml Anda seperti ini:
sumber
Tidak, Anda tidak perlu melakukan apa pun dengan AndroidManifest.xml
Pada dasarnya nama versi & versi kode di dalam aplikasi Anda tingkat aplikasi Gradle berkas, di bawah defaultConfig tag:
Catatan: Ketika Anda ingin mengunggah aplikasi di playstore dapat memberikan nama apa pun sebagai nama versi tetapi kode versi harus berbeda dari kode versi saat ini jika aplikasi ini sudah ada di play store.
Cukup gunakan cuplikan kode berikut untuk mendapatkan kode versi & nama versi dari mana saja di aplikasi Anda:
sumber
untuk Api 28 PackageInfo.versionCode sudah tidak digunakan lagi, jadi gunakan kode ini di bawah ini:
sumber
Selalu lakukan dengan
try catch
blokir:sumber
Berikut adalah metode untuk mendapatkan kode versi:
sumber
Saya telah MEMECAHKAN ini dengan menggunakan kelas Preferensi.
sumber
Ada beberapa cara untuk mendapatkan
versionCode
dan secaraversionName
terprogram.PackageManager
. Ini adalah cara terbaik untuk sebagian besar kasus.BuildConfig.java
. Tetapi perhatikan, bahwa jika Anda akan mengakses nilai-nilai ini di perpustakaan itu akan mengembalikan versi perpustakaan, bukan aplikasi satu, yang menggunakan perpustakaan ini. Jadi gunakan hanya dalam proyek non-perpustakaan!Ada beberapa detail, kecuali menggunakan cara kedua dalam proyek perpustakaan. Di plugin gradle android baru (3.0.0+) beberapa fungsi dihapus . Jadi, untuk saat ini, yaitu mengatur versi yang berbeda untuk rasa yang berbeda tidak berfungsi dengan benar.
Cara yang salah:
Kode di atas akan menetapkan nilai dengan benar
BuildConfig
, tetapi dariPackageManager
Anda akan menerima0
dannull
jika Anda tidak menetapkan versi dalamdefault
konfigurasi. Jadi aplikasi Anda akan memilikinya0
kode versi di perangkat.Ada solusi - set versi untuk
apk
file output secara manual:sumber
Kode ini disebutkan di atas dalam beberapa bagian tetapi di sini sekali lagi semua termasuk. Anda memerlukan blok coba / tangkap karena mungkin melempar "NameNotFoundException".
Saya harap ini menyederhanakan hal-hal untuk seseorang di jalan. :)
sumber
Seseorang yang tidak memerlukan informasi BuildConfig untuk UI aplikasi namun ingin menggunakan info ini untuk mengatur konfigurasi pekerjaan CI atau orang lain, seperti saya.
Ada file yang dibuat secara otomatis, BuildConfig.java, di bawah direktori proyek Anda selama Anda berhasil membangun proyek.
{WORKSPACE} / build / generate / source / buildConfig / {debug | release} / {PACKAGE} /BuildConfig.java
Membagi informasi yang Anda butuhkan dengan skrip python atau alat lain. Ini sebuah contoh:
Maafkan kemampuan bahasa Inggris saya yang terbatas, tetapi harap ini membantu.
sumber
sumber
coba yang ini:
sumber
Pertama:
dan kemudian gunakan ini:
sumber
sumber
Contoh untuk penggunaan Fragmen di dalam.
sumber
Contoh Kotlin:
Jangan berterima kasih :-)
sumber
sumber
Karena saya harus mendapatkan hanya kode versi dan memeriksa apakah aplikasi diperbarui atau tidak, jika ya, saya harus meluncurkan playstore untuk mendapatkan yang diperbarui. Saya melakukan ini.
Kemudian saya menyimpan kode versi menggunakan preferensi bersama dengan membuat kelas util.
sumber
Seperti pada tahun 2020: API 28 "versionCode" sudah tidak digunakan lagi sehingga kita dapat menggunakan "longVersionCode"
Kode sampel dalam kotlin
sumber
Berguna untuk membangun sistem: ada file yang dibuat dengan apk yang dipanggil
output.json
yang berisi larik informasi untuk setiap APK yang dihasilkan, termasuk versionName dan versionCode.misalnya
sumber