清单中的android多活动声明

时间:2011-01-14 20:42:35

标签: android android-activity android-manifest

我有一项主要活动。从中,我正在调用另外两个名为FacebookLogin和Twitterlogin的子活动。我在AndroidManufest.xml中使用以下代码:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.examples.Kikin" android:versionCode="1"
android:versionName="1.0">
<!-- THIS IS THE BEGINNING OF SHARING LINKS FROM THE BROWSER -->
<application android:icon="@drawable/kikinlogo"
    android:label="@string/app_name" android:debuggable="true">
    <activity android:name=".Kikin" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
            <data android:mimeType="text/plain" />
        </intent-filter>
    </activity>
    <activity android:name=".FacebookLogin" android:label="@string/app_name">
        <intent-filter android:label="@string/app_name">
            <action android:name="android.intent.action.SEND" />
            <category android:name="android.intent.category.DEFAULT" />
        <!--    <data android:mimeType="image/png" /> -->
        </intent-filter>
    </activity>
    <activity android:name=".TwitterLogin" android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.VIEW"></action>
            <category android:name="android.intent.category.DEFAULT"></category>
            <category android:name="android.intent.category.BROWSABLE"></category>
            <data android:scheme="yourapp" android:host="twitt"></data>
        </intent-filter>
    </activity>

</application>
<uses-sdk android:minSdkVersion="8" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
<uses-permission android:name="android.permission.INTERNET" />

我做得对吗? 我应该在主要 活动中嵌入FacebookLogin和TwitterLogin活动吗? 上述两个类在com.examples包中。 。 无论在何处使用, * 都是一样的。

5 个答案:

答案 0 :(得分:1)

没有“subactvity”这样的东西。仅仅因为你从另一个活动中调用一个活动并不意味着它是一个“子活动”。

您无法在清单中嵌套活动标记,如果您尝试过,可能会遇到编译错误。

清单中的

你只能在启动器标签中设置一个活动好吧android确实支持多个启动器活动。

答案 1 :(得分:1)

您的FacebookLogin和TwitterLogin的标签似乎缺少'@' - 将它们更改为android:label =“@ string / app_name”

答案 2 :(得分:0)

您发布的清单看起来不错。

但是关于您对错误消息“您是否在AndroidManifest.xml中声明了此活动?”的评论,您需要仔细检查您尝试启动的Activity的包和类名,并确保它与你在清单中写的<activity android:name>相匹配。

您需要的所有信息都应该出现在错误消息中。

答案 3 :(得分:0)

不要嵌套活动声明,只需将它们全部作为应用程序元素中的元素:

<manifest ...
  <application ...
    <activity ...
    </activity>
    <activity ...
    </activity>
    <activity ...
    </activity>
  </application>
</manifest>

你在这里张贴的样本(缩小旁边)看起来不错。

答案 4 :(得分:0)

也许您已经对它进行了测试,但只是尝试使用完整路径声明您的活动(尽管您已经在包标签中声明了它)。所以,而不是使用

<activity android:name=".TwitterLogin"  />

使用

<activity android:name="com.examples.Kikin.TwitterLogin" />

有时会因此引起问题。

我知道这是一个旧线程,但我m having the same problem and in my case specifying full package name doesn提供帮助。你已经找到了解决方案吗?我真的很想知道如何避免这个错误。