启动活动时出现错误

20

我最近下载了Android Studio 2.0并创建了一个新的启动应用程序,但没有添加任何代码。运行应用程序后,Android Studio成功地在模拟器上安装了APK,但未启动该应用程序,而是出现了以下错误:

$ adb shell am start -n "com.example.muhammad.firstapp/com.example.muhammad.firstapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

Unexpected error while executing: am start -n "com.example.muhammad.firstapp/com.example.muhammad.firstapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

Error while Launching activity

我在谷歌上搜索了一下,发现这个问题之前已经有人问过,但是提供的解决方案对我也不起作用。而且我也没有在AndroidManifest.xml文件中添加任何内容。

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.muhammad.firstapp">
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:supportsRtl="true"
            android:theme="@style/AppTheme">
            <activity android:name=".MainActivity">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    </manifest>

MainActivity.java

package com.example.muhammad.firstapp;
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_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.example.muhammad.firstapp.MainActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

可能是[Session 'app': Error Launching activity]的重复问题。(https://dev59.com/tloV5IYBdhLWcg3wN8nh) - Pavlus
1
我之前提到过这个问题已经被问过了,但是那些解决方案对我来说都不起作用。好吧,我通过自己苦苦挣扎数小时终于找到了解决方法,现在它对我有效了。 - metior
嗯,在那个问题中,问题的源头是 Android Studio 2.0Instant Run 功能中的一个漏洞。如果您发现了在不禁用 Instant Run 功能的情况下解决此问题的方法,请分享(通过回答您自己的问题)。 - Pavlus
我回答了自己的问题,如果有帮助,请点赞。 - metior
你有找到任何新的解决方案吗?我已经尝试了大部分2.1和2.2的答案,但都不行。难道我真的要降级到1.5吗?这似乎很难相信,但这种方法是无法使用的。 - Birei
显示剩余3条评论
20个回答

27

今天我遇到了完全相同的问题 [Android Studio 2.3.3,手机上运行Android 8.0]

这是我发现的。我尝试安装的应用程序未显示在Android应用窗口中[其中您拥有所有应用程序]。但是,一旦我进入:设置->应用和通知->应用信息,我可以看到此屏幕截图,其中说该应用程序“未为该用户安装”:

enter image description here

在那时,我进入了该应用程序 - > 点击右上角的三个点 - > 卸载所有用户

现在,当我通过Android Studio尝试运行该项目时,错误消息消失了,并且应用程序正确安装

希望这可以帮助您,祝您有愉快的一天
Antonino


1
其实谢谢你提醒我,我刚刚意识到我没有完全卸载该应用程序。 - Goodlife

10
如果您正在使用Android 2.0+,请按照以下步骤操作:
1. 进入“运行”
2. 选择“编辑配置..”
3. 在“安装标志”文本字段中键入-r
4. 应用并确定,然后再次运行程序
测试日期:23/07/2016

3

我在AVD中遇到了同样的问题,当第一次启动应用程序时,它很好,但是再次启动应用程序时,它报告“启动活动时出错”。

我的解决方法是:在AVD中卸载apk,可能原因是新版Android Studio在将apk安装到AVD时存在问题。

谢谢,Yu


3

Studio 2.0+的即时运行功能存在问题

Android开源项目-问题跟踪器中提供了解决方法

不要花费时间重新安装工作室或经常清理gradle构建文件。

只需在“安装标志”中添加-r标志

运行 -> 编辑配置 -> 常规


1
什么意思?-r标志?你能解释一下为什么我们需要添加这个吗? - Nikita
1
@Nikita -R:重复启动活动<COUNT>次。在每次重复之前,顶部活动将被结束。 您可以找到其他开关。https://developer.android.com/studio/command-line/shell.html - Rahul
@Rahul "-R"!=“-r” - The incredible Jan
@Nikita -r:替换现有应用程序。 - The incredible Jan

2
对我来说,我无法解决这个问题,这对于一个如此重要的软件来说绝对是令人恼火的。我是一个狂热的安卓用户,这实在是不可接受的,我甚至不能调试应用程序。
然而,我找到了一个可能有帮助的解决方法。
对于我来说,“Session 'app': Error Launching activity”错误并没有阻止应用程序的安装,但它确实阻止了调试应用程序,因为没有办法附加调试器。不过,还有另一种方法。
在手机上启动应用程序,然后单击“附加调试器到 Android 进程”(靠近常规调试按钮,看起来很像它),这样可以将调试器附加到已经运行的应用程序上。
虽然非常烦人,但至少我现在可以调试我的应用程序了。

1

在更改清单权限并尝试使用AndroidStudio 3.5.1重新启动应用后,我遇到了此问题。解决方法是使用adb卸载应用程序并重新启动。

adb uninstall <your app package name>

1
降级安卓版本并不是解决问题的正确方法。如果您这样做,将会失去在Android Studio中测试和开发新功能的机会。我之前遇到了类似的问题,当我升级到Android 2.1时,但是我通过选择“设置->无效缓存/重启”选项来重新启动Android Studio解决了我的问题。如果您的问题仍未解决,请尝试使用适当的系统镜像创建另一个AVD。确保您已经下载了适合您的模拟器运行的适当系统镜像。
我通过下载API级别为23的x86-64系统镜像解决了在Android 2.1中启动模拟器的问题。如果您使用的是64位,请尝试下载此系统镜像。

1
为了解决这个烦人的问题,我按照以下三个步骤进行操作:
  1. 在安装标志中包含-r标志。可以通过点击运行 -> 编辑配置来完成此操作。现在选择常规选项卡,在安装标志文本区域中键入-r。

  2. 单击文件,然后选择无效缓存/重新启动。

  3. 卸载应用程序的早期版本。我的意思是通过访问常规 -> 应用程序并卸载应用程序来删除它。将应用程序图标拖放到主屏幕上的垃圾桶中将无法解决此问题。


1

我曾经遇到过同样的问题,按照以下步骤解决了它:

  1. 卸载应用程序,例如从连接了 USB 的实际硬件上卸载。

  2. 这是关键步骤!从“最近卸载的应用程序”中卸载应用程序。

  3. 重新构建应用程序。

  4. 运行应用程序。


1
我的设备上没有“最近卸载的应用程序”。 - The incredible Jan

1
我已经在同一个问题上工作了8个小时...你从2.0回滚到1.5.1后没有遇到任何问题吗?
我注意到,即使出现错误,有时运行应用程序也能正常工作。
你不是一个人。兄弟,我找到解决方案后一定会更新的。
此外,你的规格是什么?我正在运行以下内容:
Windows 7 AMD FX(tm)-8120 8-Core AVD: Android 6.0 CPU/ABI: Google APIs ARM (armeabi-v7a) Target: API lvl 23 No accelerometer heapSize: 64
如果需要更多细节,请告诉我。样本大小为2总比1好。

感谢@Matt。好的,我将我的Android降级到1.5.1后,它运行得非常好。它正在构建应用程序,仿真器也很好,仍然没有问题。但是我面临的一个问题是侧边栏选项卡,即Maven、Structure等没有从侧边栏中删除的选项。但这不是我的问题。我的规格相同,只是我使用的是Windows 10和C2D 3.0Ghz。 - metior

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接