在元数据中使用android:value-Android

时间:2018-11-20 02:43:44

标签: android android-studio android-manifest manifest

我对元数据中值的使用感到困惑。当我提供活动的元数据时,它对我提供的android:value有什么作用。此值有什么作用。

示例

`        <activity
            android:name=".SecondActivity"
            android:label="@string/activity2_name"
            android:parentActivityName=".MainActivity">
            <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value=".SecondActivity" />
        </activity>`

是的,我查看了https://developer.android.com/guide/topics/manifest/meta-data-element上元数据的文档。说明

  

分配给项目的值。

对我来说没有意义。任何人都可以向我解释在元数据中使用android:value或有关提供数据的规则。

当清单中没有值时,为什么会给我错误。 Failed to finalize session : INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: ... <meta-data> requires an android:value or android:resource attribute

注意:我没有针对该错误/问题寻找特定于我的代码的答案。如果有的话,只是一个一般性的答案。

谢谢:)

2 个答案:

答案 0 :(得分:1)

元数据是一个名称-值对,因此android:value的含义取决于android:name。 例如:

<meta-data
   android:name="android.support.PARENT_ACTIVITY" //the activity has a parent activity 
   android:value=".SecondActivity" //the parent activity name is SecondActivity
/>

什么是父活动以及如何使用它,您可以参考https://developer.android.com/training/implementing-navigation/ancestral#top_of_page

如果您仅提供android:name而没有提供android:value,则毫无意义。

答案 1 :(得分:0)

@navylover的答案是正确且有用的,但是我想在此进行扩展。可以通过执行“程序包名称”。“应用程序名称”。“活动名称”

来找到父活动的值。

这些可以在build.gradle文件下找到。 该代码的示例如下:https://developer.android.com/studio/build/application-id