0

我在我的电脑上重新安装了 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=".Login" 行更改为 android:name=".Chat" 时,活动 Chat 会打开并且不会崩溃。但我想先打开登录,所以我使用 android:name=".Login",然后如果我点击按钮打开聊天,它就会崩溃。

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

为什么它要我宣布这个?

非常感谢!

4

3 回答 3

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,它只要求您声明实际引用的活动。

于 2013-08-24T20:10:10.527 回答
0

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

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

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

于 2013-08-24T20:11:32.080 回答
0

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

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

你的问题应该早就消失了!

于 2013-08-24T20:15:13.500 回答