1

我有以下代码:

在清单中:

<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。为什么会这样

4

2 回答 2

2

从最新的android doc来看,<meta-data>只能包含在<activity>/<activity-alias>/<service>/<receiver>中。所以你应该在这些组件中附加元数据,而不是直接在 <application> 中。

于 2013-06-21T02:32:14.063 回答
2

请注意元数据的写入位置。例如,如果您的元数据包含在 中<application></application>,您需要调用

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

如果它包含在另一个节点中,则需要更改getApplicationInfo为相关方法,例如getActivityInfogetServiceInfo等。

于 2017-01-24T06:37:30.530 回答