Manifest错误应用程序崩溃

时间:2013-08-24 20:03:11

标签: android android-activity manifest logcat

我在我的电脑上重新安装了Windows并试图用更新版本的android studio打开我的旧项目。

这是我的清单:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.linkr.chat"
      android:versionCode="1"
      android:versionName="1.0" >

<uses-sdk
        android:minSdkVersion="16"
        android:targetSdkVersion="18" />

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
    <activity
            android:label="@string/app_name"
            android:name=".Login" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

当我将行更改为android:name =“。登录”到android:name =“。聊天”时,活动聊天打开并且不会崩溃。但我想首先打开登录,所以我使用android:name =“。登录”,如果我然后点击按钮打开聊天它就会崩溃。

我从logcat得到的错误是:

    Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.linkr.chat/com.linkr.chat.Chat}; have you declared this activity in your AndroidManifest.xml?

为什么要我宣布这个?

非常感谢!

3 个答案:

答案 0 :(得分:0)

项目中的所有活动都需要在清单中声明。

<application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
    <activity
            android:label="@string/app_name"
            android:name=".Login" >
        <intent-filter >
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

    <activity android:name=".Chat" >
</application>

您是从“登录”活动中的意图开始的吗? AFAIK,它只要求您声明实际引用的活动。

答案 1 :(得分:0)

它希望您声明.Chat活动,您猜对了。现在只声明了.Login个活动。您应该在清单文件中的</activity>正下方添加此行,以声明.Chat

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

这样,您的应用中会有两种行为:.Login.Chat。现在可以通过startActivity方法从您的应用程序访问它们。您创建的每个新活动都应以这种方式声明。

答案 2 :(得分:0)

在清单文件中声明此活动。

  <activity android:name="com.linkr.chat.Chat" > </activity>

你的问题应该早就过去了!