会话“应用程序”:启动活动时出错

Posted

技术标签:

【中文标题】会话“应用程序”:启动活动时出错【英文标题】:Session 'app': Error Launching activity 【发布时间】:2016-07-31 13:11:53 【问题描述】:

在 gradle 构建完成后更新 android Studio 2.0 后,我得到了这个:

它会阻止应用程序启动,但它已安装在我的模拟器中。 这是运行选项卡中出现的内容:

执行时出现意外错误:am start -n "com.example.user.ypologismosmoriwn/com.example.user.ypologismosmoriwn.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 启动活动时出错

代码如下:

package com.example.user.ypologismosmoriwn;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity 

    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    

只是一个空的Activity,没有添加任何东西

XML 代码只是一个包含 4 个文本和 3 个复选框的相对布局

This is the logcat i am getting

感谢任何愿意提供帮助的人

【问题讨论】:

您是否编辑了清单文件?请检查一下。 另一个Log 您的清单是什么样的? 这是默认清单,看看Manifest 我已经解决了这个问题(在我的 Anroid watch Moto 360 上),方法是在从 AS 安装之前卸载应用程序 【参考方案1】:

更新到 AS2.0 后,我也遇到了这个问题。我发现这是因为启用了instant run。所以我的解决方案是禁用“即时运行”。它奏效了。要禁用“即时运行”,您可以转到Preference Dialog(Windows 上可能是设置对话框),然后选择Build, Execution, Deployment > Instant Run,然后取消选中所有复选框以禁用Instant Run

这是我的临时解决方案,它可能会对您有所帮助。稍后,我会找到更好的方法来解决这个问题。


2016 年 6 月 6 日更新

一个更好的解决方案,而不是禁用instant run。 删除.idea文件夹和.gradle文件夹,然后点击按钮Sync Project with Gradle Files(或通过菜单File -> Sync Project with Gradle Files),完成此过程后,您就可以正常运行您的应用程序了。

祝你好运~

【讨论】:

禁用即时运行停止了会话“应用程序”:启动活动错误时出错。尽管如此,应用程序不会在模拟器中自动启动。 每次运行前是否需要删除.ideagradle文件夹?! 不,只是第一次 我刚刚做了一个 gradle sync 来解决它。在我找到这个线程之前让我发疯。在我的情况下,我之前重命名了 applicationId 导致这个问题。 如果您在从设备安装应用程序后遇到此问题,应用程序可能仍会退出,请尝试检查设置 -> 应用程序 -> 删除应用程序。然后尝试运行该应用程序。它对我有用。【参考方案2】:

如果您使用的是 Android 7.0 及更高版本,则该应用程序可能安装在两个位置(访客和管理员),并且您只为一位用户卸载了它,这会导致问题。

要解决这个问题,请访问: 设置 -> 应用和通知 -> 查看所有应用 -> 找到您要安装的应用。

然后点击右上角的菜单,选择为所有用户卸载

从 Android Studio 运行您的应用应该可以工作。

【讨论】:

Android 7.0 设备也可能存在此问题。此解决方案有效! 这个问题最近困扰了我几次。而且您的方法与我在medium.com/@kaikoenig/… 中使用的方法相同。感谢上帝,我找到了这种方法!【参考方案3】:

尝试重新安装应用程序,这解决了我的错误。诀窍是,我卸载了我的应用程序,但 Android 并没有真正卸载它。在我的手机上,有一个访客用户(我姐姐有时会使用它)。如果您从主要用户那里卸载该应用程序,它仍然可以在手机上使用,但仅供来宾用户使用。看起来 Android Studio 无法处理这种情况。我猜它检测到该应用程序已安装,因此不会为当前用户再次重新安装,因此操作系统无法访问和启动该活动。不错的错误,我会报告它。

【讨论】:

这对我有帮助 - 非常有趣的 Android 行为 这也是我的情况,谢谢你找到这个! 这也是我的情况,当时没有其他方法。特别有趣的是,我可以在 Android Studio 中构建应用程序,但无法在设备上运行它。一个快速的adb uninstall 成功了!【参考方案4】:

我遇到了同样的问题,重建项目为我清除了错误。

构建 -> 重建项目 -> 运行

【讨论】:

迄今为止最简单的解决方案! 唯一正确的。禁用“即时运行”是完全错误的,因为实际上它在 99% 的情况下都可以正常工作。【参考方案5】:

这是 2.0+ 工作室的问题

问题 206036:没有本地更改,未部署 APK

我找到了很好的解决方法here 只需在编辑配置中添加 -r 标志 并且还禁用即时

等待即时运行功能尽快顺利运行,不再出现类型 3 错误!!

【讨论】:

@RanjithKumar 您需要为每个项目添加此设置,我正在做的是虽然它显示错误但安装了新的 apk,然后您可以在之后调试或播放相同的内容。还要取消选中其他选项卡中的跳过安装【参考方案6】:

对我来说,问题是我尝试启动的应用程序已经安装在我手机上的不同用户帐户下。当我去设置->应用程序想要卸载它时,我看到了这个。我切换到另一个用户,卸载它,回到原来的用户,并且能够从 Android Studio 安装和启动应用程序,没有更多问题。

【讨论】:

【参考方案7】:

我在这个确切的问题上花了很多时间。 “即时运行”修复完全失败。而且我没有错过android.intent.category.LAUNCHER 我删除了所有适用的Android Studio 和SDK 代码并重新安装。还是不行。

最终我认为我的问题是边缘硬件。我正在使用 AMD A6-4400M 处理器的笔记本电脑上运行。没有可用的硬件加速/虚拟化工具。我只是在运行标准的 Android Studio / Google 模拟器。它非常缓慢,尽管我最终能够看到模拟器并与之交互,但我始终无法将模拟器连接到 Android Studio 来上传 APK。

但我确实发现了一个很棒的修复方法。

删除所有 Android 虚拟设备并安装 GenyMotion Emulator(使用 VirtualBox)。 我之前尝试过 GenyMotion 仿真器(使用 Linux),但它在加载速度方面并没有太大区别。 在这台 Windows 10 机器上,它运行得非常好。它非常快速、轻松地连接到 Android Studio,并且可以很好地部署我的应用程序。 GenyMotion 免费提供一台个人使用设备。向 GenyMotion 团队致敬!

此处提供了答案,以防其他人遇到此错误,可能与此根本原因有关。

【讨论】:

【参考方案8】:

我遇到了同样的问题,并用这个answer 修复了它。

但是这个问题是我自己造成的,因为我试图调试我的单元测试。因此我不得不取消选中Build, Execution, Deployment > Compiler 中的AS 设置的Use in-process build 选项。

所以在我的情况下,如果我禁用instant run,它就可以工作。但它也有效,因为我启用了instant run 还有Use in-process build 选项。

【讨论】:

【参考方案9】:

只需在终端中运行 adb uninstall <package name> 并重新安装应用程序。

希望对你有帮助。

【讨论】:

获取包名使用adb shell pm list packages【参考方案10】:

同样的问题,但对我来说,问题是 Android Studio 找不到我的默认活动。当我指定意图过滤器来捕获 MAIN 操作意图时,我没有指定 LAUNCHER 类别,这导致了“错误启动活动”问题。

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

【讨论】:

虽然我没有做任何更改,但问题仍然存在,这是一个默认的新项目。可能是在 2.0 Android Studio 更新之后引起的。【参考方案11】:

只需 Run --&gt; clean and rerun ,在我的情况下它会有所帮助。 自动提示喜欢以下消息

你会卸载已安装的同名活动

如果已经安装了activity,请先卸载它并在安装应用程序后准备好项目。

【讨论】:

【参考方案12】:

由于我的愚蠢,我遇到了这个错误。在 manifest.xml 中,我错误地将两个 Activity 声明为 Launcher。确保您只有一个 Activity 作为 Launcher。

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

   <activity android:name=".WelcomeActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

【讨论】:

【参考方案13】:

我在 android studio 2.1.2 中遇到了同样的问题,但在选择 Build -> Clean Project 或 Run -> Clean and Rerun 后工作了

【讨论】:

【参考方案14】:

我尝试了所有建议的答案。我发现这是带有 Studio 2.3 版本的 Android N 手机上的硬件问题。应用在版本 7 以下的手机上可以正常启动。

【讨论】:

【参考方案15】:

我已使用此解决方案解决了该问题。如果您在 USB 设备中运行应用程序,请关闭所有虚拟设备,例如:genymotion / virtual machine。

【讨论】:

【参考方案16】:

只需禁用 Instant Run。

Go To File >> Settings >> Build, Execute, Deployment >> Instant Run

取消选中显示Enable instant run to hot swap code/resource changes on deploy的框

重新运行模拟器。

【讨论】:

【参考方案17】:

这个问题已经有这么多可能的解决方案了,如果这些都不起作用,那么试试这个。

当我第一次卸载我的应用程序然后尝试从 ADB 重新安装时,我遇到了这个问题。但是在尝试了这么多解决方案之后,我意识到现在卸载应用程序并没有真正卸载它。它只是将其禁用几天,以便在您改变主意时启用它。

现在我不确定它是由 LG 还是 Native Android Nougat 完成的。

我刚刚进入设置-> 应用程序-> 我的应用程序并完全卸载它。从 Android Studio 之后,我能够再次正确安装该应用程序而不会出现此错误。

【讨论】:

是的,我讨厌这个功能。如果我卸载了它,那么我不想要它。我花了一段时间才弄清楚出了什么问题。【参考方案18】:

如果applicationId、启动活动包或模块名称包含error 子字符串,Adb 也会抛出此错误

【讨论】:

天哪,我希望我能吻你。 2 年来我一直在处理这个问题。 谷歌,为什么?我想知道是谁负责这个马虎的编程。【参考方案19】:

现有答案都没有帮助我,因为我在其他个人资料中安装了相同的应用程序。解决方案 -

    切换到其他配置文件 从第二个配置文件中卸载应用程序 切换回来

【讨论】:

【参考方案20】:

我试过上面的answer。但是,没有一个解决方案对我有用。我把模拟器改成了USB,代码在USB目标设备上完美运行!

【讨论】:

我的模拟器也没有问题,仅在我的 Android 手表“Moto 360”上。我已经通过在设备上卸载应用程序之前和之后从 AS 成功安装它来修复它!【参考方案21】:

所有答案都对我不起作用。当我尝试重命名应用程序包时出现此错误。我最终使用新包名称创建了一个新项目并将我的文件移动到新项目。

【讨论】:

那有多难过.. :(【参考方案22】:

我已经解决了这个问题(在我的 Anroid watch Moto 360 上),方法是在从 AS 安装之前卸载应用程序

【讨论】:

【参考方案23】:

它发生在我更改应用程序 gradle 文件中的 applicationId 时。 同步 gradle 后它对我有用。

【讨论】:

【参考方案24】:

在您的真实设备或模拟器上卸载应用程序。然后再次运行。 它对我有用。 我用的是 Android Studio 2.3.3

【讨论】:

【参考方案25】:

我试过了,clean &amp; rebuild projectInvalidate Cache &amp; Restart 也手动删除了 .gradle.idea 文件夹,但这并没有解决问题。

我的手机中有 3 个用户帐户。所以,我没有选择为所有用户卸载,它只是从第一个用户帐户卸载我的应用程序,但它仍然存在于guest > 和第二个用户帐户

所以,我从其他帐户中删除了它,它解决了我的问题!

【讨论】:

【参考方案26】:

我有同样的问题。我将 AVD 与 arm 处理器映像一起使用,并收到了相同的消息。我让 Android Studio 2.1.2 运行即时运行的应用程序的唯一方法是更改​​为 X86 处理器映像。错误消失了(直到此刻)我认为仿真器的工作速度比 ARM 仿真的要快。我的工作站配置是 Intel I5,6Gb RAM。也许这会有所帮助,直到下一次修复。

【讨论】:

【参考方案27】:

禁用“即时运行”,您可以进入首选项对话框(Windows 上可能是设置对话框),然后选择构建、执行、部署 > 即时运行,并取消选中所有复选框以禁用即时运行。

然后重新启动您的设备,这应该可以使事情正常运行....即时运行在 Android Studio 2+ 中有一个错误 这应该会变魔术

【讨论】:

【参考方案28】:

我遇到了同样的错误。 此问题是由于从设备上卸载应用程序引起的(仅从 1 位用户卸载)

通过登录其他用户并从那里卸载应用程序解决。

它解决了。

【讨论】:

【参考方案29】:

以上所有建议我都做了,但没有奏效! 我重建了项目,从我的真实设备上卸载了该应用程序,拔下 USB,然后我运行 Android Studio 并在我的真实设备上运行该应用程序,问题就消失了。

希望这会有所帮助!

【讨论】:

【参考方案30】:

我遇到了与标题相同的错误。 在我更改了gradle中的版本名称和版本代码之后, 同步发生了,然后它起作用了。 所以有时甚至只有同步才有帮助。

【讨论】:

以上是关于会话“应用程序”:启动活动时出错的主要内容,如果未能解决你的问题,请参考以下文章

启动应用程序时出错:未找到默认活动 - 两次中有一次

ActivityNotFoundException,启动活动时出错

设置内容视图();在我的启动画面活动中出错

启动新活动 Android 时出错

如何修复“运行‘应用程序’时出错:未找到默认活动”

android中的下一个活动出错[重复]