Android 错误类型3错误:活动类{}不存在

Android 错误类型3错误:活动类{}不存在,android,android-studio,android-manifest,Android,Android Studio,Android Manifest,我有一个IntelliJ Android项目,我成功地将其导入到Android Studio 0.4.0。如果我不更改清单中的任何内容,它将非常有效。但是,当我想要更改启动器活动并运行时,它会失败,并出现以下错误: Launching application: com.trackingeng/LandingActivity. DEVICE SHELL COMMAND: am start -D -n "com.trackingeng/LandingActivity" -a androi

我有一个IntelliJ Android项目,我成功地将其导入到Android Studio 0.4.0。如果我不更改清单中的任何内容,它将非常有效。但是,当我想要更改启动器活动并运行时,它会失败,并出现以下错误:

Launching application: com.trackingeng/LandingActivity.
DEVICE SHELL COMMAND: am start -D -n "com.trackingeng/LandingActivity"  
    -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN  
    cat=[android.intent.category.LAUNCHER] cmp=com.trackingeng/LandingActivity }
Error type 3
Error: Activity class {com.trackingeng/LandingActivity} does not exist.
当我单击“将项目与渐变文件同步”时,它会输出:

Project Sync
The project 'TrackingEng' is not a Gradle-based project
运行设置:

重构后,我遇到了类似的问题。
这就是我为解决此问题所做的:

  • 清理项目
  • 删除了
    Build
    目录
  • 重新启动Android Studio
  • 重建项目
  • 可选(转到android上的“文件”菜单,单击“无效缓存/重新启动…”卸载手机上的应用程序并重试)
  • 一切都很顺利
    我认为关键是重新启动IDE

    希望这对你或其他人有帮助

    编辑1:
    如果上述步骤对您不起作用,那么删除Gradle缓存似乎是一个解决方案,正如@Yasitha所指出的

    编辑2
    正如一些用户在下面的评论中所建议的,有时可以通过从您的设备上完全删除并重新安装应用程序来解决问题。
    只需在终端中键入
    adb uninstall
    ,即可从设备中完全删除应用程序

    编辑3
    如中所述,如果在您的设备上设置了多个用户,还应尝试从设备中删除应用程序。
    只需转到
    Mobile Settings>Apps>[您的应用]>更多>卸载所有用户的应用

    Android Studio 2.1及以上版本的更新

    在运行Android Studio 2.1及更高版本时,如果在首选项中启用了“即时运行”选项(默认情况下已启用),也会遇到此问题

    要禁用此选项,请转到
    Android Studio
    顶部菜单中的
    首选项
    选项,并查找
    即时运行
    ,以便取消选中该屏幕上的第一个复选框

    不管怎么说,这帮我解决了。最初由用户@yusufonder指出。我发现这是问题所在,因为gradle安装仍然有效。

    尝试更改
    AndroidManifest.xml
    文件中活动的名称。 现在它说:

    <activity android:name="LandingActivity" >
    
    
    
    尝试在活动名称的开头添加句点:

    <activity android:name=".LandingActivity" >
    
    <activity android:name="com.trackingeng.LandingActivity" >
    
    
    
    将程序包名称添加到活动名称的开头:

    <activity android:name=".LandingActivity" >
    
    <activity android:name="com.trackingeng.LandingActivity" >
    
    
    

    您的包名只有两个由句点分隔的组件(您的包名为“com.trackingeng”;更标准的包名为“com.trackingeng.app”)

    重命名/重构后,我遇到了相同的错误。我所做的是将
    applicationId
    属性添加到build.gradle文件中,并将其值设置为应用程序包

    在build.gradle中

    android {
    defaultConfig {
        applicationId "com.example.myapp"  
      }
    }
    

    当您执行以下操作时,就会发生这种情况

    • 连接您的设备/模拟器
    • 从Android Studio(AS)运行应用程序
    • 使用/测试应用程序,并在其仍处于运行状态时将其从设备中卸载 已连接到您的计算机
    • 尝试从作为重新运行应用程序
    AS认为您的设备中仍有该应用程序


    tl;dr-要解决此问题,您只需在卸载应用程序后断开设备并重新连接即可。

    我也遇到了同样的问题,我通过重构我的活动启动器解决了它,只需更改类名,它就可以工作。

    即使我也遇到了同样的问题,但上述解决方案都不适用于我。
    Instant Run disable 
    
    Build -> Clean Project
    
    File -> Invalidate Caches / Restart
    
    问题是,我冻结了我试图通过Tianium Backup运行的特定应用程序,因此我出现了上述错误。我在Eclipse和Android Studio中都试过了

    意识到这一点后,我只是取消安装应用程序,然后再次运行它


    问题解决:-)

    对我来说,问题是
    AndroidStudio
    认为应用程序仍在设备上

    要解决此问题,请执行以下操作:

  • 重新启动
    adb
    守护进程
    ;在终端或命令提示下,输入:

    adb kill-server
    adb start-server
    
  • 尝试启动你的应用程序

  • 如果仍然不起作用,请检查


  • 确保Android SDK的
    平台工具
    已添加到您的系统路径变量中

    可能对某人有帮助:--

    有时在设备上测试时,应用程序无法正确卸载。要验证并修复此问题,请执行以下操作:

  • 转到设置
  • 转到应用程序
  • 选择你的应用程序。(在此,您可以验证您的应用程序是否未正确卸载)
  • 打开右上角的溢出菜单,选择“卸载所有用户”
  • 完成了。尝试安装,然后再次启动应用程序

  • 通过设备卸载应用程序时,我会遇到这个问题(即将应用程序拖到“卸载”选项)。但以下是卸载的正确方法:

    使用
    /gradlew uninstall
    命令。这将防止出现
    错误:活动类{HomeActivity}不存在。
    错误

    更新:

    如果您懒惰,可以使用此任务的缩写:
    /gradlew uA


    或者在
    .bash_profile
    中为常见的gradle任务定义别名,这样做可以节省时间和打字,而且您不必记住每个命令,也不必担心打字错误。我建议这样做。

    我想与大家分享一下对我有帮助的诀窍。我从设备上卸载了该应用程序,而clean/rebuild/Android Studio重启操作没有任何帮助

    由于Android Studio认为应用程序仍然安装在设备上,并且没有部署,因此可以使用ADB强制安装:

    adb install -r <your_application_from.apk>
    
    adb安装-r
    

    其中
    -r
    意味着重新安装应用程序,保留其数据。

    我也面临同样的问题
    adb uninstall PACKAGE_NAME
    
    adb uninstall <package_name>