<meta-data android:name="author" android:value="John Doe" /> <meta-data android:name="serverMinVersion" android:value="6.1.1" />Inside my application about activity I want to show this info.
ApplicationInfo aInfo = getPackageManager().getApplicationInfo( getPackageName(), PackageManager.GET_META_DATA); String authorName = aInfo.metaData.getString("author"); String serverMinVersion = aInfo.metaData.getString("serverMinVersion"); // show this infoBut something happened after I changed the version through an upgrade.
<meta-data android:name="serverMinVersion" android:value="6.2" />Suddenly, the version shown inside about info was null.
At first I thought I made a mistype , then that I changed something. But, after a while, I realized that it's not my problem, but an Android bug. I saw that a value like 6.2a is working without a problem. Looking for similarities I found this bug, which tells that getString() method on metaData for something with only numeric values returns always null.
Before finding this bug, it wasn't obvious for me that there is a difference between 6.1.1 and 6.2 . 6.1.1 cannot be considered a number, while 6.2 it is one.
Solution, as told inside the bug link, was to get the value like this:
String serverMinVersion = aInfo.metaData.get("serverMinVersion").toString();This is just a small bug inside Android beast and by telling that there are three years from reporting it and no one did anything, I can just give a thumb down to Android.