代码之家  ›  专栏  ›  技术社区  ›  RBT

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

  •  0
  • RBT  · 技术社区  · 6 年前

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

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

    布局文件 儿童活动 看起来像这样。我想让你看看 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 回复  |  直到 6 年前
        1
  •  2
  •   Abner Escócio    6 年前

    班级 android.support.constraint.FrameLayout 不存在。尝试 LinearLayout , FrameLayout , android.support.constraint.ConstraintLayour 或其他

        2
  •  2
  •   Basil jose    6 年前

    请试试这个!

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

    我认为根框架布局有问题

        3
  •  1
  •   Tung Tran    6 年前

    您使用了错误的布局。 只需转换 android.support.constraint.framelayout版 框架布局 . 或转换为默认值 android.support.constraint.constraintlayout

    <FrameLayout
        ...>
    
        <TextView
        ...
            />
    </FrameLayout>
        4
  •  1
  •   Neeraj vishwakarma    6 年前

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

    根布局可以是:

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

        5
  •  0
  •   Jose Chavez    6 年前

    我在另一篇文章中也看到过类似的问题。马上,您的子活动似乎不在“.mainActivity”的封闭术语内。

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