Java 带有清单文件的Android元数据-nullPointerException

Java 带有清单文件的Android元数据-nullPointerException,java,android,nullpointerexception,metadata,Java,Android,Nullpointerexception,Metadata,我正在尝试从清单文件访问活动的元数据 清单如下所示: <activity android:name="co.uk.benbun.nvrrclubapp.MainActivity" android:label="@string/app_name" > <meta-data android:value="newstag" android:name="NEWS"></meta-data> <

我正在尝试从清单文件访问活动的元数据

清单如下所示:

    <activity
        android:name="co.uk.benbun.nvrrclubapp.MainActivity"
        android:label="@string/app_name" >
        <meta-data android:value="newstag" android:name="NEWS"></meta-data>
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    try {
        ApplicationInfo ai = getPackageManager().getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA);
        Bundle bundle = ai.metaData;
        String myApiKey = bundle.getString("NEWS");
    } catch (NameNotFoundException e) {
        Log.e("metadata", "Failed to load meta-data, NameNotFound: " + e.getMessage());
        feedTag = "NEWS";
    } catch (NullPointerException e) {
        Log.e("metadata", "Failed to load meta-data, NullPointer: " + e.getMessage());
        feedTag = "NEWS";
    }
当我执行代码时,我总是得到nullPointerException

我做错了什么?

for
PackageManager.GET_META_DATA
说:

ComponentInfo标志:返回所创建的元数据数据包 与组件关联的。这适用于任何返回 ComponentInfo子类


您正在调用
getApplicationInfo()
,它返回一个
ApplicationInfo
对象
ApplicationInfo
不继承自
ComponentInfo
,因此此对象将不包含任何元数据。您需要为您的
main活动
获取
ActivityInfo
,以获取元数据(
ActivityInfo
ComponentInfo
的子类)。

请从logcat获取stacktrace?尽管文档明确说明这仅适用于ComponentInfo项,但如果没有它,ApplicationInfo的元数据包为空。