AndroidManifest.xml中未声明活动“MainActivity”

时间:2016-10-21 18:57:39

标签: android xml

我收到一条错误,内容为活动'MainActivity'未在AndroidManifest.xml中声明

Screenshot of the error

这里有什么问题?

18 个答案:

答案 0 :(得分:4)

移动很多文件时出现此错误,仅修复重新同步Gradle文件即可。

文件->使用Gradle文件同步项目

答案 1 :(得分:3)

有时在移动或重命名文件时,XML文件可能损坏。我的情况是ic_launcher.xml损坏了。我重新生成了,并且工作正常。

检查proyect中的每个XML。

答案 2 :(得分:1)

您很可能只是错过了AndroidManifest

中的以下内容
<activity
    android:name=".MainActivity"
    android:label="@string/app_name"

以下是AndroidManifest

的完整示例
<?xml version="1.0" encoding="utf-8"?>
<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.pejner.myapplication">

<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"
            android:label="@string/app_name"
            android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>
</manifest>

答案 3 :(得分:1)

对于这些情况,您最近更改了android:allowBackup设置,请确保还设置了tools:replace="android:allowBackup",以防某些依赖项中声明了它来覆盖它。在手动执行Gradle > app > cleanbuild > lintFix

之前,我不会知道此解决方案

我收到的确切错误是:

错误:来自AndroidManifest.xml的属性application @ allowBackup value =(false):41:9-36 也存在于[com.kaopiz:kprogresshud:1.2.0] AndroidManifest.xml:12:9-35 value =(true)。 建议:在AndroidManifest.xml:39:5-254:19的元素上添加'tools:replace =“ android:allowBackup”'以进行覆盖。

答案 4 :(得分:1)

尝试转到File-> Invalidate Caches / Restard并选择invaliadate并重新启动,它对我有用

答案 5 :(得分:1)

这可能只有两个原因,

粗体,缺少扩展声明

class MainActvity extends AppCompatActivity 

您使用错误的包名注册您的活动,所以在这种情况下使用ALT + Space然后studio将显示选项本身。

答案 6 :(得分:1)

当我在使用项目时笔记本电脑突然关闭时,这发生在我身上。如果您在清单中看到活动声明,请不要打开任何xml文件。它们在打开文件后可能会损坏。 因此,请执行以下步骤:

  1. 从项目中删除所有.iml文件
  2. 转到文件=>使缓存无效/重新启动
  3. 重建项目gradle
  4. 最后,如果问题仍然存在,请转到文件=>用gradle文件同步项目

答案 7 :(得分:0)

如果您看到在升级IntelliJ IDEA或Android Studio版本或生成新的APK之后发生错误,则可能需要刷新IDE的缓存。

File -> Invalidate Caches / Restart...

答案 8 :(得分:0)

这很奇怪。对我来说,我必须打开 Edit Configurations(运行配置)并在 Module 下拉菜单下选择 <no module>。然后在模块下拉菜单下重新选择我的项目并应用。它的构建和运行都很好。

答案 9 :(得分:0)

就我而言,所有答案都无济于事。幸运的是,我记得我在build.gradle中添加了一个变量,尝试从MainActivity访问该变量。

问题是AndroidManifest.xml中不存在此新变量。将变量添加到AndroidManifest.xml后,问题就解决了。

答案 10 :(得分:0)

请按照以下步骤操作:

  1. 文件=>使缓存无效/重新启动...
  2. 文件=>使用gradle文件同步项目

如果上述步骤无效,请输入:

com.example.(project name).MainActivity

它应该工作,为我工作。

答案 11 :(得分:0)

我当时正在处理我的项目,我的笔记本电脑突然重新启动,我尝试了很多方法,但无法修复。 但最后我做到了 做这些步骤,让我知道它是否有效?

1. File > Invalidate Cache and restart the the android studio
2. Build > Clean Project and then Rebuild project
3. Sync project with gradle files

如果仍然显示错误,请尝试以下步骤

1. Create new activity
   Remember to clink on checkBox Launcher Activity
   Hope this will Fix your problem

最后转到AndroidManifest.xml并将“新活动默认值”更改为上一个活动

答案 12 :(得分:0)

有三种解决方法

1:- 转到“文件”->“使缓存无效” /选择“无效并重新启动”,它可以正常工作

2:- 如果您使用MainActivity,请确保其中包含onCreate方法,并使用AppCompatActivity进行扩展。

3:-以及最后一个与Gradle文件同步的项目

答案 13 :(得分:0)

由于某种原因,我所有的XML文件都被切成两半,我不确定它何时发生(我使用Git VCS,也许是这样)。我必须仔细检查它们中的每一个并还原代码。

答案 14 :(得分:0)

我收到一个错误“即使在清单文件中正确,也未在AndroidManifest.xml中声明活动'MainActivity'”。

我的问题是,当我创建项目时,我必须将项目标记为“使用AndroidX工件”。

答案 15 :(得分:0)

感谢大家抽出时间帮助初学者。 我发现我在MainActivity.java中错误地拼写了包 当我纠正它时,错误消失了。 谢谢大家。

答案 16 :(得分:0)

你应该试试这个

<activity
            android:name="com.example.stockquote.StockInfoActivity"
            android:label="@string/app_name"
             />

有关详情,请点击此处Activity declare

答案 17 :(得分:0)

替换你的AndroidManifest.xml

     <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.justjava">

    <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>