2

有没有办法在 AndroidManifest.xml 中定义一个或其他数据类型,以便其他标签(例如 or 可以引用字符串中包含的值)?

<?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 中包含字符串数据的原因是为了打包同一应用程序的多个版本,即英语、法语版本需要了解不同的扩展文件大小。

为了达到预期的结果,会生成清单,其中包含各种元数据来表示这些差异。

4

2 回答 2

2

为了达到我的结果,我把每个活动都作为一个孩子而不是。

值得注意的是,我正在使用 Android Manifests 的合并来达到这种效果:

图书馆:

<?xml version=1.0" encoding="utf-8">
<manifest xmlns:android="http://schemas.android.com/apk/res/android">        
    <application>
        <activity></activity>
    </application>
</manifest>

我的项目:

<?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");

这意味着可以在父库项目中定义活动,并且可以将数据存储在子 AndroidManifest 中。

于 2013-05-08T08:29:45.677 回答
2

不在清单中,但您可以在 res/values/strings.xml 中定义它 - 例如:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="foo">bar</string>
...
于 2013-05-07T16:31:15.880 回答