错误类型 3 - 活动类不存在
Posted
技术标签:
【中文标题】错误类型 3 - 活动类不存在【英文标题】:Error type 3 - Activity class does not exist 【发布时间】:2017-06-14 01:13:12 【问题描述】:我正在尝试运行 webRTC 应用程序,但返回以下错误:
启动应用程序: com.onlinevoicecallapp/com.onlinevoicecallapp.MainActivity。
设备外壳命令:am start -n “com.onlinevoicecallapp/com.onlinevoicecallapp.MainActivity”-a android.intent.action.MAIN -c android.intent.category.LAUNCHER
开始:Intent act=android.intent.action.MAIN 猫=[android.intent.category.LAUNCHER] cmp=com.onlinevoicecallapp/.MainActivity
错误类型 3 错误: 活动课 com.onlinevoicecallapp/com.onlinevoicecallapp.MainActivity 没有 存在。
当我搜索它时,我发现了很多解决方案,但它们都不适用于我的情况,请指教!
下面是我的 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>
【问题讨论】:
我发现这个问题不仅发生在webRTC,而且我创建的每个项目都会发生! 【参考方案1】:我在手动卸载旧的调试版本后遇到了这个问题。该应用程序不知何故进入了一个奇怪的状态,它仍然被安装,但“为另一个用户安装”。我曾尝试在没有运气的情况下进行干净的构建。这终于为我解决了:
-
进入应用列表,找到应用。对我来说,它是“为其他用户安装的”。
从右上角的菜单中选择“为所有用户卸载”。
完成此操作后,我能够正常将调试版本部署到手机。
【讨论】:
我的英雄!这为我修好了。我希望我在拔头发之前找到这个…… 这是正确答案,谢谢!【参考方案2】:我认为问题是您已经在不同用户下拥有相同的应用程序,可以通过转到
来删除 设置 > 所有应用 > 您的应用 > 为所有用户卸载如果问题仍然存在,您应该从 ADB 本身尝试使用终端上的命令将其卸载。
adb uninstall yourpackagename
【讨论】:
【参考方案3】:对我来说,解决方案是转到 Gradle > Tasks > Install > UninstallAll
【讨论】:
谢谢!你救了我 这应该是市场的正确答案。像魅力一样工作。【参考方案4】:可能是旧版本的应用未正确卸载。
当我从 LG G5 上的启动器卸载应用程序时,它仍然存在于 >Settings>Apps 中,但标有“已停用”。
我确实必须从>设置>应用程序中卸载它才能真正删除它。 之后,我能够再次安装并运行该应用程序。
【讨论】:
【参考方案5】:唯一对我有用的是,我将测试设备从 LG 更改为三星,它开始为我工作。与其他任何设备相比,在 LG 设备上更频繁地观察到相同的问题。
【讨论】:
确实,安装了新设备,它正在工作。我想模拟器损坏了,然后就会发生这个错误。【参考方案6】:我也遇到了同样的错误。当我将启动器活动移动到其他文件夹时,我会发生这种情况。
但在内部,Android Studio 正在查看先前路径的文件。
我多次清理项目,但错误仍然存在。最后只需执行一步错误就消失了。
我通过重启 Android Studio 并再次打开项目解决了这个错误。
谢谢
【讨论】:
【参考方案7】:尝试了上面给出的几乎所有解决方案。错误仍然存在。然后我重新启动了模拟器,它就可以工作了。
【讨论】:
【参考方案8】:在我的例子中,模拟器处于安全模式
重启模拟器,瞧。 NB重启以将其从安全模式中移除
【讨论】:
【参考方案9】:这就是我解决问题的方法。 转到 Run -> Edit Configuration-> 然后选中 Install for all users 复选框。
【讨论】:
【参考方案10】:-
干净的构建
只需重构和重命名项目包名
进入安卓应用列表
查找应用程序
为所有用户卸载
【讨论】:
【参考方案11】:您的设备包含旧版本的 apk。您可能会重命名包或更改应用标识符。因此,当您安装新版本的 apk 时,由于包不匹配,它将无法安装。 为了解决这个问题,
从您的设备中卸载旧版本的 apk。 如果问题仍然存在,则通过在 Android Studio 中选择Build --> Clean Project
来清理项目。
【讨论】:
【参考方案12】:我发现android studio有问题,我还没有找到问题的根本原因,但是通过卸载android studio并从另一个来源安装它来解决问题。
【讨论】:
如果您没有根本原因,为什么这是公认的答案? 因为它解决了问题。我找不到帮助来了解根本原因,但这是唯一有效的方法。 因为它解决了问题。我找不到帮助来了解根本原因,但这是唯一有效的方法。 在我的情况下,根本原因是 proguard 和 multidex,在较慢的设备上。 Android 无法以足够快的速度访问 multidex 放入的段,从而导致了这个奇怪的问题。 可能是 proguard,甚至更改 Edit Configurations->General->Deploy->Default Activity(或根据您的 gradle 设置更改为 Nothing)。【参考方案13】:可能你已经在你的android中安装了应用程序,尝试通过adb推荐卸载它 "adb 卸载 com.onlinevoicecallapp"
【讨论】:
需要进行一些编辑以使声明清晰 - 现在不太容易理解以上是关于错误类型 3 - 活动类不存在的主要内容,如果未能解决你的问题,请参考以下文章