无法启动新活动作为主要活动

时间:2018-08-01 16:50:02

标签: android android-activity startup

最初,我的Android项目只有一个名为MainActivity的活动。然后,我在项目中添加了一个名为ChildActivity的新活动。我正在尝试在启动应用程序时将新活动作为启动活动启动。我更改了AndroidManifest.xml文件来实现它。我将整个intent-filter标签从MainActivity移到了ChildActivity,如下所示:

<activity android:name=".MainActivity">

        </activity>

        <activity android:name=".ChildActivity" >

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        </activity>

ChildActivity的布局文件如下所示。我正在尝试在刚刚添加的新活动中显示TextView

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ChildActivity">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv_display"
        android:text="Hello this is Rasik!"/>

</android.support.constraint.FrameLayout>

ChildActivity.java文件:

package com.example.android.explicitintent;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;

public class ChildActivity extends AppCompatActivity {

    private TextView mDisplayText;

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

每当我尝试在Android AVD中调试应用程序时,都不会发生任何事情。看来我的应用在启动时崩溃了。谁能帮助我诊断根本原因?

5 个答案:

答案 0 :(得分:2)

请尝试一下!

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
 xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv_display"
        android:text="Hello this is Rasik!"/>

</FrameLayout>

我认为根帧布局存在问题

答案 1 :(得分:2)

android.support.constraint.FrameLayout不存在。尝试LinearLayoutFrameLayoutandroid.support.constraint.ConstraintLayour或其他

答案 2 :(得分:1)

您使用了错误的布局。 只需将 android.support.constraint.FrameLayout 转换为 FrameLayout 。 或转换为默认的 android.support.constraint.ConstraintLayout

<FrameLayout
    ...>

    <TextView
    ...
        />
</FrameLayout>

答案 3 :(得分:1)

您使用的根布局android.support.constraint.FrameLayout不存在。查看此链接Android Developer guide

您的根目录布局可以是:

您可以根据需要使用许多布局。

答案 4 :(得分:0)

我在另一篇文章中看到了类似的问题。刚开始,您的孩子活动似乎不在“ .MainActivity”的封闭条款之内。

将子活动放在“ .MainActivity”的括号之间, <activity android:name=".MainActivity"> </actvitiy>。希望这会使它运行得更好。如果不起作用,请在MainActivity的onCreate()方法期间启动子活动。