【问题标题】:Android Studio says"Mainactivity is not declared in AndroidManifest.xml"?Android Studio 说“AndroidManifest.xml 中没有声明 Mainactivity”?
【发布时间】:2019-03-14 10:42:27
【问题描述】:

这是我的清单文件,当我运行应用程序时显示“AndroidManifest.xml 中未声明主活动”

我尝试重建,使缓存无效/重新启动,添加

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"  to my manifest

stockoverflow 上的其他答案中还有许多其他内容,但没有解决我的问题。请帮我。 我昨天做了一个apk,到那时它工作正常,但今天我打开它时显示这个错误。

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

        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:roundIcon="@mipmap/ic_launcher_round"
            android:supportsRtl="true"

            android:theme="@style/AppTheme">
            <activity android:name=".pprath">
            </activity>
            <activity android:name=".mpurn" />
            <activity android:name=".mprath" />
            <activity android:name=".Prambhik" />
            <activity android:name=".Exams" />



            <activity android:name=".Kalyan"/>
            <activity android:name=".Thats" />
            <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.keval.raagbhandaar;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {


    private Button button4;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        button4 = (Button) findViewById(R.id.button4);
        button4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                openActivityexam();


            }

            public void openActivityexam() {
                Intent intent = new Intent(MainActivity.this, Exams.class);
                startActivity(intent);
            }


        });
    }}

日志猫

2019-03-14 17:02:33.492 5363-5363/com.keval.raagbhandaar E/AndroidRuntime: 致命异常: main 进程:com.keval.raagbhandaar,PID:5363 java.lang.RuntimeException: Canvas: 试图绘制太大(558306000bytes) 位图。 在 android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:229) 在 android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:97) 在 android.graphics.drawable.BitmapDrawable.draw(BitmapDrawable.java:529) 在 android.view.View.getDrawableRenderNode(View.java:19450) 在 android.view.View.drawBackground(View.java:19386) 在 android.view.View.draw(View.java:19183) 在 android.view.View.updateDisplayListIfDirty(View.java:18142) 在 android.view.View.draw(View.java:18920) 在 android.view.ViewGroup.drawChild(ViewGroup.java:4236) 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022) 在 android.view.View.updateDisplayListIfDirty(View.java:18133) 在 android.view.View.draw(View.java:18920) 在 android.view.ViewGroup.drawChild(ViewGroup.java:4236) 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022) 在 android.view.View.updateDisplayListIfDirty(View.java:18133) 在 android.view.View.draw(View.java:18920) 在 android.view.ViewGroup.drawChild(ViewGroup.java:4236) 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022) 在 android.view.View.updateDisplayListIfDirty(View.java:18133) 在 android.view.View.draw(View.java:18920) 在 android.view.ViewGroup.drawChild(ViewGroup.java:4236) 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022) 在 android.view.View.updateDisplayListIfDirty(View.java:18133) 在 android.view.View.draw(View.java:18920) 在 android.view.ViewGroup.drawChild(ViewGroup.java:4236) 在 android.view.ViewGroup.dispatchDraw(ViewGroup.java:4022) 在 android.view.View.draw(View.java:19195) 在 com.android.internal.policy.DecorView.draw(DecorView.java:788) 在 android.view.View.updateDisplayListIfDirty(View.java:18142) 在 android.view.ThreadedRenderer.updateViewTreeDisplayList(ThreadedRenderer.java:669) 在 android.view.ThreadedRenderer.updateRootDisplayList(ThreadedRenderer.java:675) 在 android.view.ThreadedRenderer.draw(ThreadedRenderer.java:783) 在 android.view.ViewRootImpl.draw(ViewRootImpl.java:2992) 在 android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2806) 在 android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2359) 在 android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1392) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6752) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:911) 在 android.view.Choreographer.doCallbacks(Choreographer.java:723) 在 android.view.Choreographer.doFrame(Choreographer.java:658) 在 android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897) 在 android.os.Handler.handleCallback(Handler.java:790) 在 android.os.Handler.dispatchMessage(Handler.java:99) 在 android.os.Looper.loop(Looper.java:164) 在 android.app.ActivityThread.main(ActivityThread.java:6494) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)

【问题讨论】:

  • 你的主要活动的包名是什么?
  • 文件本身的名称是否准确为“MainActivity.java”?因为您在短文中以三种不同的方式输入了“MainActivity”。
  • 我重新创建了应用程序并复制并粘贴了您的清单,它运行正常。你一定漏掉了一个细节。

标签: android android-activity manifest declare


【解决方案1】:

可能有两种情况。

1) 你有你的 MainActivity.java 类,但你还没有创建 activity_main.xml 这就是为什么你没有在你的 android 清单中声明你的活动。

2) 你有 java 类和 xml 类,但你没有在 android manifest 中声明你的活动。

注意只有当您忘记在 android manifest 中声明您的活动时才会出现此问题。

【讨论】:

  • 如何声明
  • 确保您的项目中有 MainActivity.java 类。
  • 这里是应用程序->java->com.keval.raagbhandaar->这里
  • 我有 MainActivity.java 文件 app->java->com.keval.raagbhandaar->这里
  • 试试这个:文件 -> 将项目与 gradle 文件同步。如果它有效,请告诉我!
【解决方案2】:

此错误的以下可能性。

  1. 你忘了扩展你的活动

    class MainActvity extends AppCompatActivity
    
  2. 您使用了错误的包名来注册您的活动

         <activity
            android:name="com.keval.raagbhandaar.MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    

根据你的包名:

MainActivity.java

package com.keval.raagbhandaar;

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);
    }
}

AndroidManifest.xml

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        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>

【讨论】:

  • 能否请您更正并给出我不明白的代码
  • 你的活动的包名是什么?您也可以尝试使用 alt+space,android studio 会给出建议。然后添加活动。
  • 我的 mainactivity.xml 在这里 res->layout->HERE
  • 不,你的 java 文件在哪里? MainActivity.java 或 MainActivity.kt
  • app->java->com.keval.raagbhandaar->这里
【解决方案3】:

.MainActivity 是你的类路径?

你需要像“.myfolder.MainActivity”这样设置整个路径吗?

【讨论】:

  • 没听懂。你想说什么请解释一下
  • 例如:如果您的 Main Activity 类位于此结构文件夹中:ui -> main -> MainActivity。声明应该是 .ui.main.MainActivity
  • 类是xml文件还是java文件?
  • java 文件。 MainActivity.java
  • 我的 MainActivity.java 文件在这里 app->java->com.keval.raagbhandaar->这里
【解决方案4】:

你检查过你的日志错误吗 java.lang.RuntimeException: Canvas: 试图绘制太大(558306000bytes) 位图。在 android.view.DisplayListCanvas.throwIfCannotDraw(DisplayListCanvas.java:229) 在 android.view.RecordingCanvas.drawBitmap(RecordingCanvas.java:97) 在

这是说您使用的图像尺寸很大,请尝试减小图像尺寸并重新运行。也许它会起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-04
    • 2019-11-22
    • 2023-03-05
    • 1970-01-01
    • 2019-03-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-26
    相关资源
    最近更新 更多