主活动的名称必须为.MainActivity吗?

9

我的应用程序有这个主要活动:

<activity
    android:name=".main.MainActivity"
    ...
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

这个应用在主屏幕上可以无问题启动。但是,当我尝试从谷歌手势搜索中启动它时,会收到手势错误消息,说该应用程序没有.MainActivity

https://play.google.com/store/apps/details?id=com.google.android.apps.gesturesearch

Android 应用程序是否需要将主活动命名为 .MainActivity?如果不是,那么这是一种软性建议、约定还是 Gesture 的错误假设?
4个回答

13

Android应用程序不需要任何名为“MainActivity”的活动。此外,我不知道有任何类似的惯例。听起来你可能在无意中告诉Gesture你想要一个叫做“MainActivity”的东西。

也许是因为您在实际类名之前放置了包名。尝试使用完全限定的类名。还可以尝试重命名Activity,看看是否会得到不同的结果。


3

Android应用程序不需要一个名为MainActivity的活动,您不应该假设(并且肯定不应该依赖)任何应用程序都实现了这个活动。

此外,我从未听说过任何建议这样做的约定。大多数开发人员会根据应用程序中每个活动的行为和/或目的来命名每个活动。


0

可能问题出在你在清单文件中提到的活动名称。

android:parentActivityName=".activity.MainActivity"

如果你正在使用碎片和动作栏的返回按钮,那么你必须正确地提及父活动的名称,在我的例子中是MainActivity。如果你没有正确给出它,它将显示错误。

0

不,这并不是必需的,我从未在我的项目中使用过这个名字。您可以根据您的应用程序行为来命名。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接