错误类型 3:活动类 ... 不存在

Posted

技术标签:

【中文标题】错误类型 3:活动类 ... 不存在【英文标题】:Error type 3: Activity Class ... does not exist错误类型 3:活动类 ... 不存在 【发布时间】:2013-11-09 08:08:24 【问题描述】:

AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.m.e"
      android:versionCode="5"
      android:versionName="3.0">

<uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18"/>

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme">
    <activity
            android:name="com.m.e"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden">
        <intent-filter>
            <action
                    android:name="android.intent.action.MAIN"
                    />

            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
            android:name="com.m.e"
            android:label="@string/app_name"
            android:screenOrientation="portrait"
            android:configChanges="orientation|keyboardHidden">
        <intent-filter>
            <action
                    android:name="android.intent.action.first"
                   />

            <category android:name="android.intent.category.DEFAULT"/>
        </intent-filter>
    </activity>

    .....

</application>

</manifest>

错误:

 Starting: Intent  act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.m.e/.Splash 
 Error type 3
 Error: Activity class com.m.e/com.m.e.Splash does not exist.

注意: .Splash 确实存在。

【问题讨论】:

清理重建,这里没有问题。 Error type 3 Error: Activity class does not exist的可能重复 去编辑配置(从项目名称下拉菜单中)...在安装选项下的一般选项卡中,将部署从无更改为默认 apk 在工作室升级到 4.2 并且伴随的 Gradle 升级到 6.x 后发生在我身上。这通常是最隐蔽的错误出现的时候。按照 Sniclolas 的建议,清理和重建,修复它。 【参考方案1】:

我遇到了同样的问题,我通过在我的 Android 手机(使用 Play 商店)上重新安装以前的生产版本解决了这个问题,flutter run 之后就可以正常运行了。

【讨论】:

【参考方案2】:

有时在您重命名项目的根目录后会发生这种情况。

    删除项目的 .idea 文件夹。 重新打开 Android Studio 并重建。

【讨论】:

【参考方案3】:

您只需在 build.gradle

中更改您的 applicationId

【讨论】:

【参考方案4】:

这就是我修复它的方法。转到 Gradle > 任务 > 安装 > UninstallAll

【讨论】:

我什么都试过了。但这对我有用。非常感谢 @ShohelRana 很高兴这对您有帮助【参考方案5】:

是的,我知道已经有一个可接受的答案,但它不起作用(或可能不再起作用)。目前在 Android 8.0 Oreo 版本中,您的应用有可能会在您的设备上“但并非针对所有用户”被卸载。因此,下次您使用设备调试应用程序时,会发生此错误。

Error: Activity class "class path here" does not exist
Error type 3

这是你如何修复它绝对有效的(搜索了 2 天相信我)

    如果您仍然可以在 设置 > 应用 > 选择您的应用下看到您的应用,然后转到其工具栏上的选项并选择“为所有用户卸载

    如果您的应用不在应用列表中,生成/构建 APK,在我的情况下(Android Studio 3.0.1),您可以转到 Build > Build Apk 。在您的设备上手动安装它。 然后执行第 1 步

那里!您的应用程序都是清理过的应用程序并完全卸载。您现在可以使用开发环境对其进行调试。

进一步研究:我相信Samsung Pass app与此错误有关。即使在卸载之后。我的项目仍在他们的名单上。

快乐编码 干杯!

【讨论】:

这个答案值得获得英雄奖……简直难以置信。 @vortek 很高兴它能帮到你。 我使用的是Android Studio 3.5,设置在哪里??我在上面有 AndroidStudio、文件、编辑......等等。谢谢你的帮助 我解决了检查项目文件的问题,并确保项目名称相同:: 这些文件是; andorid/app/build.gradle>>android>defaultConfig >applicationId 名称... android/app/src/main/AndroidManifest.xml 包名... android/app/src/debug/AndroidManifest.xml 包名... ..MainActivity.java 包名...android/settings.gradle rootProject.name ...android/app/BUCK android_build_config 和android_resource 包名... 你是个天才,这个应用程序是在 android 10 中以“工作模式”安装的,所以这导致了整个混乱。我真的欠你的。谢谢朋友【参考方案6】:

我想你有一个像我的 LG Stylus 3 Android 7.0 这样的设备,当你按下并将应用程序从桌面移动到垃圾箱时,应用程序不会从设备中删除。详情请见my accepted answer on the same question。

【讨论】:

【参考方案7】:
adb uninstall <your package name>

这对我有用。尽管该应用程序甚至没有显示为已安装的应用程序,但卸载命令解决了该问题。 我的理论:可能有一些数据在上一次卸载后未清除,导致下一次安装未完全完成。

【讨论】:

经过半天的奋斗,只有这对我有所帮助。谢谢【参考方案8】:

我在 Android O (Google Pixel C) 上遇到了这个错误。我想我也会在其他设备上遇到这个错误。

我尝试将(从 AndroidStudio)安装到任何设备上都可以,但在 Android O 上却不行。在 Android o 上我遇到了同样的错误(如下所示)。

根本原因。我在该设备上有两个用户(user1,user2)。 当我从 user1 卸载应用程序时(该应用程序仍然存在于 user2 中)。 当我尝试在用户 1 上重新安装应用程序时,它返回错误。用户 2 中的情况相同。 如果我从两个用户那里卸载应用程序并重新安装它可以解决问题。

如果我们使用“adb install -r example.apk”从命令链接它可以工作,但 AndroidStudio 不会进行卸载和重新安装(如果您的设备中有两个用户)。

所以在我的情况下,这是因为不止一个用户问题。我所有的其他设备(Android O 除外)都是单用户,这就是原因,它可以在其他设备上运行,除了 Pixel C(有两个用户)。 所以要注意多用户设备。

No apk changes detected since last installation, skipping installation of /home/user/Project/AndroidStudioProjects/MyAddress/app/build/outputs/apk/app-debug.apk
$ adb shell am force-stop com.arris.myaddress
$ adb shell am start -n "com.example.address/com.example.address.MainActivity1" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Error while executing: am start -n "com.example.address/com.example.address.MainActivity1" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent  act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.address/.MainActivity1 
Error type 3
Error: Activity class com.example.address/com.example.address.MainActivity1 does not exist.

Error while Launching activity

【讨论】:

谢谢,这就是我的问题。我想知道是否可以禁用访客用户而无需 root 设备。【参考方案9】:

我通过重启我的测试设备并重启 Android Studio 解决了这个问题。

【讨论】:

【参考方案10】:

检查您是否正在构建隐藏版本。这是隐藏应用的预期行为。

如果要构建普通版本,需要在Android Studio中修改Build Variant Build > Select Build Variant,改为普通版本。

【讨论】:

【参考方案11】:

在 build.gradle 中,

改变

apply plugin: 'android-library'

apply plugin: 'com.android.application'

如果您的 build.gradle 已经有 apply plugin: android-library,请尝试清理您的项目。

【讨论】:

【参考方案12】:

我尝试了上述所有建议,但只有这样解决了我的问题;

    更改软件包名称无关紧要并同步 gradle。 将包名称更改为您真正想要的,同步并运行。

【讨论】:

【参考方案13】:

我也遇到了同样的问题,当我卸载应用程序并同时进行构建时出现问题。然后在工作室中出现上述错误。所以我尝试了所有选项,但这些对我不起作用。所以我检查了 设置 -> 应用程序 -> 选择了我的应用程序,我看到应用程序处于禁用状态,所以它没有安装(给出错误)。我卸载了应用程序并尝试构建然后它工作正常。

【讨论】:

我在 LG 5 (Android 7) 上遇到了同样的问题,这个答案解决了它!谢谢【参考方案14】:

build.gradle 中,一行:

 apply plugin: 'android-library'

需要更改为:

 apply plugin: 'com.android.application'

【讨论】:

apply plugin: 'android-library' 是如何出现在你的 build.gradle 中的?? 对我来说,我不得不将 apply plugin: 'android' (我被警告现在已弃用)替换为 apply plugin: 'com.android.application' 并且错误消失了,它似乎失败了不知从何而来,虽然这很有趣 哇,这为我解决了这个问题,我使用的是 Android Studio 0.8.6 - 给出了折旧警告的奇怪错误。 我什至无法想象这种解决方案。 @zulkarnain 如果应用插件:'com.android.application' 已经存在并且仍然存在问题,只需清理项目并再次运行。为我工作。【参考方案15】:

转到您的设备设置。选择应用程序选项,从列表中选择特定应用程序,在右上角,选择菜单栏选项,然后选择为所有用户删除。它对我有用。

【讨论】:

【参考方案16】:

虽然这是几年前发布的问题,但我想分享我的解决方案。

打开运行->编辑配置,检查包面板中是否选择了“部署默认APK”。应选择“部署默认 APK”。

这个问题发生在我身上,因为我之前出于某种原因选择了“不部署任何东西”并且我忘记了撤消选择。

【讨论】:

这是唯一对我有帮助的东西。谢谢! 谢谢伙计,这对我也有帮助! 我认为这是真正的答案 它是我的答案【参考方案17】:

就我而言,我尝试了这里提到的所有方法,但它们并没有解决我的问题。问题不在 Android Studio 中,而是在设备中。 在我将我的 Android 设备重置为出厂设置后(如此处所述https://support.google.com/android-one/answer/6088915?hl=en),问题就消失了。

【讨论】:

【参考方案18】:

我遇到了类似的问题,在到处搜索和尝试修复后找不到解决方案。唯一对我有用的是创建一个新项目,复制旧活动中的所有代码并将它们粘贴到新创建的活动中(名称相似但包不同)。它工作得很好。我在更改包名称之前尝试过,但没有成功。它可能对你们有用。

【讨论】:

【参考方案19】:

手动改包名时,如果manifest.xml没问题,则需要改

应用插件:'android'

应用插件:'com.android.application'

【讨论】:

【参考方案20】:

我最近刚刚遇到这个错误。 我通过完全卸载设备上的应用程序,然后重新运行来修复它。

为了提供一些上下文,这是由使用 setComponentSetting() 引起的

【讨论】:

好吧,清理项目后,使缓存无效/重新启动,删除构建文件夹文件夹,将项目与 gradle 文件同步,卸载 Android Studio,再次安装并更新它,我发现这个建议对我有用.. . 谢谢!【参考方案21】:

重命名/重构后我遇到了同样的错误。我所做的是将applicationId 属性添加到我的build.gradle 文件中,并将其值设置为应用程序包。像这样:

android
    defaultConfig
        applicationId "com.example.mypackage"
    

【讨论】:

将 applicationId 重构为其他东西并将其恢复为原始 id 对我有用!【参考方案22】:

在我的情况下,重命名活动是解决方法。

【讨论】:

【参考方案23】:

我正在使用带有清单中指定的示例 Activity 的库模块。

从库项目的清单中取出示例活动对我有用。

【讨论】:

【参考方案24】:

这主要是日食问题,因此正常情况可能适用于您。清理项目并重建工作空间,打开manifest查看是否有错误,重新查看日志中提到的类名,一遍遍清理,重启eclipse,打开清理。

【讨论】:

【参考方案25】:

您的错误表明它正在寻找com.codealchemist.***mma.splash。大多数 Java 类都以大写字母开头 - 确保您的类名完全匹配。

【讨论】:

@Binghammer - 我已经更新了我的答案。你确定你的java类叫splash而不是Splash 我所有的课程都以大写字母开头。但是由于某种原因,我没有在我的splash课上这样做。所以我的班级名称是小写的。 我非常怀疑你需要做那么多。我真的会仔细检查您的包名称和类是否完全匹配,以及 splash 是否正在扩展 Activity(或其子类型之一)。 您的评论已被删除。问题结束了吗?

以上是关于错误类型 3:活动类 ... 不存在的主要内容,如果未能解决你的问题,请参考以下文章

错误类型 3 - 活动类不存在

错误:活动类 .MainActivity 不存在

包重命名和错误“活动类不存在”

活动类 .....SplashActivity 不存在

使用adb shell启动Android应用程序时出现错误“活动类不存在”

运行时错误'1004':不存在“活动”字段