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
我做错了什么?forPackageManager.GET_META_DATA
说:
ComponentInfo标志:返回所创建的元数据数据包
与组件关联的。这适用于任何返回
ComponentInfo子类
您正在调用
getApplicationInfo()
,它返回一个ApplicationInfo
对象ApplicationInfo
不继承自ComponentInfo
,因此此对象将不包含任何元数据。您需要为您的main活动获取ActivityInfo
,以获取元数据(ActivityInfo
是ComponentInfo
的子类)。请从logcat获取stacktrace?尽管文档明确说明这仅适用于ComponentInfo项,但如果没有它,ApplicationInfo的元数据包为空。