我有一项主要活动。从中,我正在调用另外两个名为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包中。 。 无论在何处使用, * 都是一样的。
答案 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
提供帮助。你已经找到了解决方案吗?我真的很想知道如何避免这个错误。