在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
感谢愿意提供帮助的任何人
答案 0 :(得分:109)
我更新到AS2.0后也遇到了这个问题。我发现这是因为启用了instant run
。所以我的解决方案是禁用“即时运行”。它起作用了。要禁用“即时运行”,您可以转到Preference Dialog
(可能在Windows上设置对话框),然后选择Build, Execution, Deployment
> Instant Run
,取消选中所有复选框以停用Instant Run
。
这是我的临时解决方案,它可能会对您有所帮助。稍后,我会找到解决此问题的更好方法。
更好的解决方案,而不是禁用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及更高版本,则可能已在两个位置(来宾和管理员)安装了该应用程序,而您仅针对一位用户卸载了该应用程序,这会引起问题。
要解决该问题,请转到: 设置-> 应用和通知-> 查看所有应用->查找您要安装的应用。
然后点击右上角的菜单,然后选择为所有用户卸载
从Android Studio运行您的应用程序即可。
答案 4 :(得分:8)
这是2.0+工作室的问题
问题206036:没有本地更改,没有部署APK
我找到了很好的解决方法here 只需在编辑配置中添加-r标志 并且还禁用即时
等待获得即时运行功能很快就能顺利运行,没有类型3错误!!
答案 5 :(得分:7)
对我来说,问题是我尝试启动的应用已安装在手机上的其他用户帐户下。当我去设置 - >想要卸载它的应用程序时,我看到了这一点。我切换到其他用户,卸载它,回到原始用户,并且能够安装并从Android Studio启动应用程序,没有更多问题。
答案 6 :(得分:4)
我在这个问题上花了很多时间。 “即时运行”修复完全失败。我并没有错过android.intent.category.LAUNCHER
我删除了所有适用的Android Studio和SDK代码并重新安装。还是不行。
最终我认为我的问题是边缘硬件。我正在使用AMD A6-4400M处理器的笔记本电脑上运行。没有可用的硬件加速/虚拟化工具。我刚刚运行标准的Android Studio / Google模拟器。它非常缓慢,虽然我最终能够看到模拟器并与之交互,但我无法将模拟器连接到Android Studio以上传APK。
但我确实发现了一个很棒的修复方法。
此处提供的答案,以防其他人遇到此错误,可能是因为这个根本原因。
答案 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)
由于我的其他个人资料中安装了相同的应用程序,因此现有答案均无济于事。解决方案-
答案 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 project
和Invalidate 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