为什么我有意图地启动第二项活动时android无法识别?

时间:2019-01-23 08:11:58

标签: android android-intent android-manifest

当点击侦听器尝试打开新活动时,我弹出一个奇怪的错误:

  

android.content.ActivityNotFoundException:无法找到显式   活动课   {com.example.room2n.practice8 / com.example.room2n.practice8.NewDbaActivity};   您是否在AndroidManifest.xml中声明了此活动?

这很奇怪,因为我无法在清单中指出任何问题:

<?xml version="1.0" encoding="utf-8"?>

<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"
        android:theme="@style/AppTheme.NoActionBar"
        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=".NewDbaActivity">
    </activity>
</application>

它也是触发功能:

 public void onClick(View view) {
            Intent intent = new Intent(MainActivity.this, NewDbaActivity.class);
            startActivity(intent);
        }

1 个答案:

答案 0 :(得分:0)

您必须在AndroidManifest.xml文件中声明新创建的Activity。例如上面的示例:

<activity
            android:name=".NewDbaActivity"
            android:label="@string/title_yourTitle"
            android:theme="@style/AppTheme.NoActionBar"/> 

我看到您已经完成的操作。我建议您看一下第二项活动的路径,是在 package 中吗?因为我可以阅读以下内容:Practice8 ..如果是这样,则需要声明为.practice8.NewDbaActivity之类。

PS:我看到您对问题的编辑,这会导致问题。您已经更改并通过编辑行将它们弄乱了。因此,请根据包名称遵循前面的方法。