Skocz do zawartości
Coders Lab

Wyświetlanie wersji aplikacji (VersionName) w aplikacji

    Rekomendowane odpowiedzi

    VersionName jest przydatną informacją, którą twórcy często umieszczają w jakimś miejscu swojej aplikacji. Wartość ta znajduje się w pliku build.gradle na poziomie modułu aplikacji, w sekcji defaultConfig:

        defaultConfig {
            applicationId "tutorial.android.com.pl.tutorial"
            minSdkVersion 22
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }

    Co zrobić aby móc wyświetlać tą wartość w aplikacji? Możemy dodać w pliku strings.xml, ale nie jest to dobre rozwiązanie. Za każdym razem gdy wersja ulegnie zmianie musielibyśmy poprawiać tą wartość w dwóch miejscach. Nie jest to dobra praktyka. Zmiana powinna być w jednym miejscu, dzięki temu nie zdarzy się pomyłka. Aby tego dokonać możemy użyć:

    
    // dodajemy do instniejącego tagu android
    
    android {
    
    //... 
    
        applicationVariants.all { variant ->
            variant.resValue "string", "versionName", variant.versionName
        }
    
    //...
    }

    Po zbudowaniu aplikacji (w tym przypadku została zbudowana wersja release i debug) powstanie nowy resource typu string i nazwie versionName którego będziemy mogli używać w naszym layoucie:
    image.png.ee4665d55bc88164e81d0f372ea4b9f7.png

    Jednak Android Studio podświetli tą wartość na czerwono:

    image.png.e17c75b5e67c2e13257454c549606542.png

    IDE niestety nie radzi sobie tak wygenerowanymi stringami i jest to jedynie problem z Android Studio. Sama aplikacja po zbudowaniu uruchomi nam się bezproblemowo. Żeby ten string nie podświetlał się na czerwono możemy zmusić AS, aby go ignorował poprzez dodanie suppress AndroidDomInspection:

        <!--suppress AndroidDomInspection -->
        <TextView
            android:id="@+id/versionName"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/versionName" />

     

     

    Edytowane przez Coders Lab

    Udostępnij tę odpowiedź


    Odnośnik do odpowiedzi
    Udostępnij na innych stronach

    Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

    Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

    Zarejestruj nowe konto

    Załóż nowe konto. To bardzo proste!

    Zarejestruj się

    Zaloguj się

    Posiadasz już konto? Zaloguj się poniżej.

    Zaloguj się

    • Ostatnio przeglądający   0 użytkowników

      Brak zarejestrowanych użytkowników przeglądających tę stronę.

    x