错误类型 3 - Activity class 不存在

Error type 3 - Activity class does not exist

我正在尝试 运行 webRTC 应用程序,但返回以下错误:

Launching application: com.onlinevoicecallapp/com.onlinevoicecallapp.MainActivity.

DEVICE SHELL COMMAND: am start -n "com.onlinevoicecallapp/com.onlinevoicecallapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER

Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.onlinevoicecallapp/.MainActivity }

Error type 3 Error: Activity class {com.onlinevoicecallapp/com.onlinevoicecallapp.MainActivity} does not exist.

当我搜索它时,我找到了很多解决方案,但其中 none 个对我有效,请指教!

下面是我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>

<!-- WebRTC Dependencies -->
<uses-feature android:name="android.hardware.camera" />
<uses-feature android:name="android.hardware.camera.autofocus" />
<uses-feature
    android:glEsVersion="0x00020000"
    android:required="true" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />

<!-- PubNub Dependencies -->
<!--<uses-permission android:name="android.permission.INTERNET" />-->
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
<permission android:name="your.package.name.permission.C2D_MESSAGE" android:protectionLevel="signature" />
<uses-permission android:name="your.package.name.permission.C2D_MESSAGE" />

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_pubrtc"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.onlinevoicecallapp.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name="com.onlinevoicecallapp.VideoChatActivity"
        android:label="@string/title_activity_video_chat"
        android:parentActivityName="com.onlinevoicecallapp.MainActivity"
        android:windowSoftInputMode="stateHidden"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.onlinevoicecallapp.MainActivity" />
    </activity>
    <activity
        android:name="com.onlinevoicecallapp.IncomingCallActivity"
        android:label="@string/title_activity_incoming_call">
    </activity>
    <activity
        android:name="com.onlinevoicecallapp.LoginActivity"
        android:label="@string/title_activity_login" >
    </activity>
</application>

我发现 android studio 有问题,我还没有找到问题的根本原因,但是通过卸载 android studio 并安装解决了这个问题它来自另一个来源。

我 运行 在手动卸载旧的调试版本后进入这个。该应用程序以某种方式进入了 st运行ge 状态,它仍处于安装状态,但 "installed for another user"。我曾尝试过做一个干净的构建但没有运气。这终于为我修复了它:

  1. 进入应用列表,找到应用。对我来说是 "installed for other users".
  2. Select "uninstall for all users" 来自右上角的菜单。

完成此操作后,我能够正常将调试版本部署到 phone。

可能是旧版本的应用程序未正确卸载。

当我从我的 LG G5 上的 启动器 卸载应用程序时,它仍然存在于>设置>应用程序中但标记为 "Deactivated"。

我确实必须从>设置>应用中卸载它才能真正删除它。 之后,我能够再次安装并 运行 该应用程序。

请问您已经在android中安装了该应用程序,请尝试通过adb commend 卸载它 "adb uninstall com.onlinevoicecallapp"

唯一对我有用的是,我将测试设备从 LG 换成了三星,它开始为我工作。与其他任何设备相比,在 LG 设备上观察到相同问题的频率更高。

对我来说,解决方案是转到 Gradle > 任务 > 安装 > 卸载全部

我认为问题在于您已经在不同的用户下使用了相同的应用程序,可以通过以下方式将其删除

  • 设置 > 所有应用 > 您的应用 > 为所有用户卸载

如果问题仍然存在,您应该从 ADB 本身尝试使用终端上的命令将其卸载。

adb uninstall yourpackagename 

我也遇到了同样的错误。当我将启动器 activity 移动到其他文件夹时,我会遇到这种情况。

但在内部 Android 工作室在以前的路径中查找文件。

我清理了很多次项目,但错误仍然存​​在there.Finally只需一步,错误就消失了。

我通过重新启动 Android Studio 并再次打开项目解决了这个错误。

谢谢

几乎尝试了上面给出的所有解决方案。错误仍然存​​在。然后我重新启动了模拟器,它工作了。

在我的例子中,模拟器处于安全模式

restart the emulator and voila. NB restart to remove it from safe mode

这就是我解决问题的方法。 转到 运行 -> 编辑配置-> 然后选中 为所有用户安装 复选框。

第一次尝试 亚行卸载 com.packagename 对我来说很好

如果不行试试

  1. 清理构建
  2. 简单重构重命名项目包名
  3. 转到android 应用列表
  4. 查找应用程序
  5. 为所有用户卸载

您的设备包含旧版本的 apk。您可能已重命名包或更改了应用程序标识符。因此,当您安装新版本的 apk 时,由于包不匹配,它不会安装。 要解决该问题,

  • 从您的设备中卸载旧版本的 apk。
  • 如果问题仍然存在,请在 Android studio 中选择 Build --> Clean Project 清理项目。