2013-05-02 4 views
1

У меня есть следующий код:ApplicationInfo метаданные возвращаются нуль

В манифесте:

<meta-data 
    android:name="com.facebook.sdk.ApplicationId" 
    android:value="@string/facebookApplicationId" /> 

В коде:

ApplicationInfo ai = getPackageManager().getApplicationInfo(
     getPackageName(), PackageManager.GET_META_DATA); 
if (ai.metaData != null) { 
    ... 

Но результат ai.metaData == NULL. Почему это происходит

+0

Возможный дубликат: http://stackoverflow.com/questions/7500227/get-activityinfo-metadata-in-oncreate-method – laalto

ответ

2

Из последних андроида документ, < мета-данные > могут содержаться только в < деятельности >/< активности-псевдонима >/< сервис >/< приемник >. Таким образом, вы должны добавить метаданные в эти компоненты, а не в < приложение > напрямую.

+2

Я думаю, что это неверно: http://developer.android.com/guide /topics/manifest/meta-data-element.html – eeeeaaii

+0

@eeeeaaii Спасибо, посмотрел, что Google изменил документ. – cmoaciopm

0

будьте осторожны с тем, где записаны ваши метаданные. например, если ваш мета-данные содержатся, вам необходимо позвонить

getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA); 

, если оно содержится в другом узле, вам необходимо изменить getApplicationInfo к соответствующему методу, например, getActivityInfo, getServiceInfo и т.п ,.

Смежные вопросы