会话'app':错误启动活动

时间:2016-04-10 13:53:17

标签: android android-studio

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

会话'app':错误启动活动。

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

  

执行时出现意外错误: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);
    }
}

这只是一个空的活动,没有添加任何内容

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

This is the logcat i am getting

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

33 个答案:

答案 0 :(得分:109)

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

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

2016/06/06更新

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

祝你好运〜

答案 1 :(得分:27)

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

答案 2 :(得分:19)

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

构建 - >重建项目 - >跑

答案 3 :(得分:18)

如果您使用的是Android 8.0及更高版本,则可能已在两个位置(来宾和管理员)安装了该应用程序,而您仅针对一位用户卸载了该应用程序,这会引起问题。

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

enter image description here enter image description here

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

enter image description here

从Android Studio运行您的应用程序即可。

答案 4 :(得分:8)

这是2.0+工作室的问题

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

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

enter image description here

等待获得即时运行功能很快就能顺利运行,没有类型3错误!!

答案 5 :(得分:7)

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

答案 6 :(得分:4)

我在这个问题上花了很多时间。 “即时运行”修复完全失败。我并没有错过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团队!

此处提供的答案,以防其他人遇到此错误,可能是因为这个根本原因。

答案 7 :(得分:3)

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

但这个问题是我自己创建的,因为我试图调试我的单元测试。因此,我必须在$here = (Split-Path -Parent $MyInvocation.MyCommand.Path) -replace '\\test', '\main' $sut = (Split-Path -Leaf $MyInvocation.MyCommand.Path) -replace '\.Tests\.', '.' $productionFile = "$here\$sut" Describe "File1" { Context "When the Back-Directory outputs an error." { # Arrange Mock Back-Directory { } Mock Write-Error # Act & $productionFile $hasSucceeded = $? # Assert It "Calls Backup-Directory" { Assert-MockCalled Backup-Directory -Exactly 1 -ParameterFilter { $IsError -eq $true } } It "Writes error message." { Assert-MockCalled Write-Error -Exactly 1 -ParameterFilter { $Message -eq "Error" } } It "Exits with an error." { $hasSucceeded | Should be $false } } } >中取消选中AS设置的Use in-process build选项。 Build, Execution, Deployment

所以在我的情况下,如果我禁用了Compiler,它就有效。但它也有效,因为我启用了instant run 以及instant run选项。

答案 8 :(得分:2)

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

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

答案 9 :(得分:2)

只是Run --> clean and rerun,在我的情况下它会有所帮助。 提示自动跟随消息

  

您是否会卸载已安装的同名活动

如果已经安装了活动,首先卸载它并在安装应用程序后使项目准备就绪。

答案 10 :(得分:2)

由于我的愚蠢,我有这个错误。在manifest.xml中,我错误地将两个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>

答案 11 :(得分:1)

由于我的其他个人资料中安装了相同的应用程序,因此现有答案均无济于事。解决方案-

  1. 切换到其他个人资料
  2. 从第二个配置文件中卸载应用
  3. 切换回

答案 12 :(得分:1)

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

答案 13 :(得分:1)

只需在您的终端上运行ios 然后重新安装该应用。

希望有帮助。

答案 14 :(得分:1)

对于这个问题,已经有很多解决方案了,如果这些方法都不能解决问题,那就试试。

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

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

我刚刚进入“设置”->“应用程序”->“我的应用程序”,并将其完全卸载。之后,可以从Android Studio重新正确安装该应用程序,而不会出现此错误。

答案 15 :(得分:1)

我尝试了所有建议的答案。我发现这是Android N手机上的硬件问题,工作室版本为2.3。应用程序在7版以下的手机上推出。

答案 16 :(得分:1)

我在android studio 2.1.2中遇到了同样的问题但是在选择Build后面工作 - &gt;清洁项目或者运行 - &gt;清洁和重新运行

答案 17 :(得分:1)

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

答案 18 :(得分:0)

我有与标题相同的错误。 在更改gradle中的版本名称和版本代码之后, 同步发生,然后开始工作。 因此,即使只有同步有时也会有所帮助。

答案 19 :(得分:0)

我尝试了以上answer。但是,解决方案都没有为我工作。我将仿真器更改为USB,代码完全在USB目标设备上运行!

答案 20 :(得分:0)

“我的答案”专门针对Redmi / Mi Phone用户。我多次遇到这个问题。

有时我们会卸载该应用程序,但尚未完全卸载,但该应用程序将不会显示在屏幕上,并且也不会在设置->应用程序中列出。

检查了多个答案之后,对我有用的是下面的命令

转到Android Studio,然后单击Android Studio底部的“终端”标签。一旦adb检测到您的设备,请连接您的设备,运行此命令 命令,然后重试以运行您的应用程序。希望会有所帮助。

adb uninstall com.shyam.smsapp

com.shyam.smsapp 替换为您的应用程序包名称

答案 21 :(得分:0)

唯一的最佳答案是从adb运行卸载命令,然后再次安装应用程序

C:\ Users \ YourUser \ AppData \ Local \ Android \ sdk \ platform-tools> adb卸载applicationId

applicationId:来自gradle模块文件

答案 22 :(得分:0)

清除设备数据对我有用...

关闭模拟器

转到AVD管理器

在“操作”下,选择“擦除数据”(针对您打算使用的设备)

然后再次运行您的应用程序!

希望这对您有帮助...

答案 23 :(得分:0)

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

答案 24 :(得分:0)

有时候,当您从android设备上卸载应用程序时,它并没有完全卸载。它进入禁用状态。要解决此问题,请转至设置->应用程序->禁用的应用程序->选择您的应用程序并卸载。

然后转到android studio并运行该应用程序。问题已解决。

答案 25 :(得分:0)

通过在从AS安装之前卸载应用程序,我已经解决了问题(在我的Anroid手表Moto 360上)

答案 26 :(得分:0)

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

希望这会有所帮助!

答案 27 :(得分:0)

禁用&#34;即时运行&#34;,您可以转到Preference Dialog(可能在Windows上设置对话框),然后选择Build,Execution,Deployment&gt;即时运行,取消选中所有复选框以禁用即时运行。

重新启动你的设备这应该让事情发挥作用....即时运行在Android studio 2+中有一个错误 这应该是魔术

答案 28 :(得分:0)

我得到了同样的错误。 此问题是由从设备卸载应用程序(仅从1个用户卸载)

引起的

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

它解决了。

答案 29 :(得分:0)

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

我的手机中有 3个用户加入。所以,我没有为所有用户选择卸载,它只从第一个用户帐户中卸载我的应用,但它仍然存在于来宾第二个用户帐户

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

答案 30 :(得分:0)

我在app gradle文件中更改了applicationId时发生了。 我同步gradle后,它对我有用。

答案 31 :(得分:0)

只需停用即时运行。

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

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

的框

重新运行模拟器。

答案 32 :(得分:0)

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