活动类不存在

时间:2011-08-15 21:54:47

标签: android

Aaaargh!我不知道发生了什么,但突然间我无法启动我的应用程序。我正在使用IntelliJ,我不断收到此错误。我想也许在清单的某个地方有一个错字,但似乎没有。继承人的错误:

Launching application: com.foo.app/com.foo.app.main.
DEVICE SHELL COMMAND: am start -n "com.foo.app/com.foo.app.main"
Starting: Intent { cmp=com.foo.app/.main}
Error type 3
Error: Activity class {com.foo.app/com.foo.app.main} does not exist.

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.foo.app">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".main">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
        <activity android:name=".NoBellsActivity"/>
    </application>
</manifest>

奇怪的是,ADB向我展示了ActivityManager正在启动意图......

18 个答案:

答案 0 :(得分:47)

问题在于项目的构建/运行配置。 您必须在“常规”选项卡下的“运行/调试配置”屏幕中选中“部署应用程序”复选框。

这解决了我的问题。

答案 1 :(得分:12)

我有一个非常相似的错误。 在我的情况下,应用程序没有完全从Android手机中删除。 我只是使用ADB删除它,例如adb unsinstall com.your_app_name

答案 2 :(得分:12)

检查您是否在设备上安装了具有相同软件包ID的其他应用程序:https://stackoverflow.com/a/22524188/540639

答案 3 :(得分:7)

在检查了人们在帖子中说明的所有其他内容后,请检查IDEA: 运行 - &gt;编辑配置 - &gt; Android应用程序 - &gt;启动您要在启动应用程序时启动的活动应该在那里......

答案 4 :(得分:6)

我已经尝试过我发现的每一个建议,但无法解决问题。 在那之后我想出了自己: 我的问题是我重命名了包。 要确保您没有收到上述错误,请添加

  defaultConfig {

    applicationId "com.yourpackage.yourapplication"
  }

到你的build.gradle文件。 希望有所帮助。

答案 5 :(得分:5)

我遇到了相同症状的问题,并且在我的情况下解决了这个问题。

  1. 如果您还没有,请使用LogCat窗口获取有关异常的更准确信息,而不是控制台优惠。

  2. 如果您还没有,请检查布局XML文件,以防您有自定义对象并且使用了错误的资源路径。

  3. 如果您还没有,或者您必须解决上述问题,请尝试清理您的项目,然后重新构建。

答案 6 :(得分:4)

重建应用程序并运行它。

这解决了我的问题。

答案 7 :(得分:3)

我在清单中发现了一个额外的<application> </application>标记,我不知道它是如何到达的,但删除它会修复我的问题。

答案 8 :(得分:1)

同时仔细检查包和活动名称。由于活动名称前面缺少一个点(例如“package.Activity”而不是“.package.Activity”),我得到了类似的错误。 IntelliJ没有将其标记为错误,因此很容易被忽视。

答案 9 :(得分:1)

我一直在intellij中得到这个。

您好像缺少说明您的默认包的内容的行,例如Com.foo。您的清单出现问题...尝试创建一个新的空白测试项目并比较您缺少的内容,因为它看起来太短了。

答案 10 :(得分:1)

与Joff的回答类似。在Lollipop中,当您尝试卸载应用程序时,它并不会为所有用户卸载(尽管我只有一个用户)。

我只需转到“设置”中的“应用”部分,选择应用并使用菜单和“#34;为所有用户卸载&#34;。

答案 11 :(得分:1)

在关闭Genymotion模拟器并连接手机后,我遇到了同样的问题。清理项目并重新运行也解决了我的问题。

答案 12 :(得分:0)

一种解决方案:

只需创建一个新项目并将您的类从旧项目复制到新项目中,运行新项目,它可能会起作用,为我工作。

答案 13 :(得分:0)

在运行中的Android Studio中&gt;编辑配置检查启动活动框中的包名称是否正确。

我在该框中的大写字母存在问题,该大写字母不在包名称中。

答案 14 :(得分:0)

我在这里报道了同样的问题。我最近在我的应用程序中添加了第三个活动,并且无法以相同的错误启动。为解决此问题,我使用了详细信息posted here。另一位开发人员说,在他们的AndroidManifest.xml文件中引入错误纠正了他们的问题。我做了同样的事情:我添加了一个空间来导致编译错误,构建,报告错误,纠正错误然后重新编译和部署以及IT工作。

希望它能解决您的问题。

答案 15 :(得分:0)

它发生在我身上,因为我forget将其添加到manifest file或拼写错误的班级名称

答案 16 :(得分:0)

我尝试了很多,但问题是软件包冲突。我只是使缓存无效,然后重新启动了Android Studio,并且运行良好。 希望这对您有帮助!

答案 17 :(得分:-3)

就像删除它一样简单。 (点)在您的活动名称前面。您的主要活动不应该点缀。名字前面的点意味着它是主要的孩子。