有没有办法在AndroidManifest.xml中定义一个或其他数据类型,以便其他标签如或可以引用字符串中包含的值?
<?xml version=1.0" encoding="utf-8">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<string name="foo" value="bar">
<application>
<activity>
<meta-data android:name="metadata1" android:value="@string/foo"/>
</activity>
</application>
</manifest>
编辑:目的
希望在Manifest中包含字符串数据的原因是为了打包同一应用程序的多个版本,即英语,法语版本需要知道不同的扩展文件大小。
为了达到预期的效果,会生成清单,其中包含各种元数据来表示这些差异。
答案 0 :(得分:2)
不在清单中,但您可以在res / values / strings.xml中定义它 - 例如:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="foo">bar</string>
...
答案 1 :(得分:1)
为了达到我的成绩,我把孩子当作一个孩子而不是每个活动。
有用的说明,我正在使用Android Manifest的合并来实现此效果:
库:
<?xml version=1.0" encoding="utf-8">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application>
<activity></activity>
</application>
</manifest>
MyProject的:
<?xml version=1.0" encoding="utf-8">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<meta-data android:name="metadata1" android:value="StringLocalValue"/>
</manifest>
然后我让每个活动访问数据:
ApplicationInfo ai = getPackageManager().getApplicationInfo(getPackageName(), PackageManager.GET_META_DATA);
ai.metaData.getString("metadata1");
这意味着可以在父库项目中定义活动,并且可以将数据存储在子AndroidManifests中。