应用在 Android 开发中加载另一个活动时崩溃

问题描述

当我尝试通过 Imagebutton 加载另一个 Activity 时,我的应用崩溃了。

我的第一个活动

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import android.widget.*;
import android.view.*;
import android.content.Intent;
import android.view.View.*;

public class MainActivity extends Activity 
{

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    
    public void profile(View view)
    {
        Intent gender_intent = new Intent(this,genderselection.class);
        startActivity(gender_intent);
    }
}

MyfirstActivity xml 文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:background = "@drawable/original"
    >
   <ImageButton
        android:gravity = "center_vertical"
        android:layout_marginTop = "-345dp"
        android:id = "@+id/m_b"
        android:layout_width ="200dp"
        android:layout_height = "200dp"
        android:background= "@drawable/profile"
        android:onClick = "Profile"
   />
   <TextView
        android:layout_width ="200dp"
        android:layout_height = "50dp"
        android:text = "ENTER NAME"
        android:gravity = "center"
        android:layout_below = "@id/m_b"
        android:textSize = "27dp"
        android:textColor = "#000000"
        android:textStyle = "bold"
        android:id = "@+id/textname"
   />
   <EditText
        android:gravity = "center"
        android:layout_width ="200dp"
        android:layout_height = "50dp"
        android:layout_below = "@id/textname"
        android:id = "@+id/input"
   />
   <ImageButton
        android:gravity = "bottom"
        android:layout_width ="200dp"
        android:layout_height = "50dp"
        android:text = "Confirm"
        android:textColor = "#ffffff"
        android:background = "@drawable/done"
        android:layout_marginBottom= "-100dp"
    />
        
    
    
        
        
        
</RelativeLayout

我的第二个活动

package com.mycompany.myapp;

import android.app.*;
import android.os.*;
import android.widget.*;
import android.view.*;
import android.content.Intent;

public class genderselection extends Activity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.gender);
    }
}

MySecondActivity xml 文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    
    <ImageButton
         
        android:gravity= "center_vertical"
        android:layout_height = "120dp"
        android:layout_width = "120dp"
        android:background = "@drawable/mprofile"
        />
    
</LinearLayout

清单文件

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme"
        android:resizeableActivity = "true">
        <activity
            android:name=".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=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

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

</manifest>

我是全新的,没有使用 android studio。 这只是一个简单的ide 请帮助我 谢谢

我正在使用 Play 商店的 ide 并在我的手机中进行此编码

解决方法

尝试使用以下代码,不要在清单文件中添加第二个活动。尝试更新您的清单文件。

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

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme"
    android:resizeableActivity = "true">
    <activity
        android:name=".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=".genderselection"
        android:label="@string/app_name" >
       
    </activity>
    
  </application>

</manifest>
,

首先,在您的清单文件中,我注意到您的活动与 .MainActivity 的名称设置相同。 您需要删除清单文件中的以下第二个活动标签

`<activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />

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

并用这一行替换上面的代码用于第二个活动

<activity android:name=".genderselection"></activity>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...