Intereting Posts
Как создать постоянную полноэкранную активность наложения в Android Android: автоматически показывать мягкую клавиатуру, когда фокус находится на EditText Lollipop AppCompat-v7 21 – Атрибут «тема» уже определен Правильный способ использования аннотации @NonNull в Android Studio Моя кнопка местоположения GoogleMaps v2 Android, не отображается Как прокрутить таблицу в горизонтальном и вертикальном направлениях в андроиде Проблема с глубоким связыванием Android! Как использовать схему пользовательского URL-адреса myapp: // some_data Корреспондент Кордовы отказался от запроса о кордове ios 4 Как просмотреть личность человека, подписавшего apk на устройстве Android? Веб-браузер Android с подключением https и базовым auth. Как это сделать? Включите android: largeHeap в Android 4 и отключите его в Android 2.3 Диапазон HttpUrlConnection Диапазон в Android игнорируется Бесконечный ViewPager Android, как EditText работает как автозаполнение Как заменить GLSurfaceView на TextureView в Android Ice Cream Sandwich?

Метаданные Android из манифеста, возвращающего null

У меня есть класс с одним методом, который пытается извлечь метаданные из манифеста. Все работает отлично, за исключением того, что пакет, который я создаю из информации приложения, возвращает нулевые значения

Вот код:

private int getCurrentVersion(){ int currVersion = 0; try { ApplicationInfo app = context.getPackageManager().getApplicationInfo(context.getPackageName(),PackageManager.GET_META_DATA); Bundle bundle = app.metaData; for (String key: bundle.keySet()) { Log.d ("TEST", key + " is a key in the bundle"); } Log.d("TEST","google: "+bundle.getString("com.google.android.gms.version")); Log.d("TEST","version: "+bundle.getString("dbVersion")); //currVersion = Integer.valueOf(bundle.getString("dbVersion")); currVersion = 1; } catch (NameNotFoundException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } return currVersion; } 03-05 18:53:23.818: D/TEST(31400): com.google.android.gms.version is a key in the bundle 03-05 18:53:23.818: D/TEST(31400): dbVersion is a key in the bundle 03-05 18:53:23.828: D/TEST(31400): google: null 03-05 18:53:23.828: D/TEST(31400): version: null 

Как вы можете видеть, я использую несколько журналов, чтобы увидеть, пуст ли пуст, но его нет.

Solutions Collecting From Web of "Метаданные Android из манифеста, возвращающего null"

В некоторых случаях вам нужно использовать метод getInt ():

 bundle.getInt("com.google.android.gms.version")); 

Потому что значение этих метаданных определяется как целое число.

 Log.d("TEST","google: "+bundle.getInt("com.google.android.gms.version")); 

Например, если значение, определенное в ваших метаданных, является строкой:

  <meta-data android:name="com.elenasys.a" android:value="abcXJ434" /> 

использовать:

  bundle.getString("com.elenasys.a")); 

Если это целое число:

  <meta-data android:name="com.elenasys.b" android:value="1234" /> 

Использовать getInt()

  bundle.getInt("com.elenasys.b"));