我在我的电脑上重新安装了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?
为什么要我宣布这个?
非常感谢!
答案 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>
你的问题应该早就过去了!