【发布时间】:2011-10-24 02:17:09
【问题描述】:
我的项目在切换活动时遇到问题。 mt 项目包含 3 个具有 3 种不同布局的活动,因此一种布局对应一种活动。 但是,项目无法运行,模拟器提示“应用程序 myProject 已意外停止”
这是我的代码:
public class myProject extends ListActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main_layout);
Button loginButton = (Button) findViewById(R.id.login);
loginButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), login.class);
startActivityForResult(myIntent, 0);
}
});
Button joinButton = (Button) findViewById(R.id.join);
joinButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(view.getContext(), register.class);
startActivityForResult(myIntent, 0);
}
});
Button exitButton = (Button) findViewById(R.id.exit);
exitButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
System.exit(0);
}
});
}
这里是 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="myProject.app"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".main"
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=".login"></activity>
<activity android:name=".main"></activity>
<activity android:name=".register"></activity>
</application>
<uses-sdk android:minSdkVersion="9" />
</manifest>
请帮我找出问题所在。谢谢。
更新 AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="myProject.app"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".myProject"
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=".choosepet"></activity>
<activity android:name=".login"></activity>
<activity android:name=".petMain"></activity>
<activity android:name=".register"></activity>
</application>
<uses-sdk android:minSdkVersion="9" />
</manifest>
我已经更新了,还是无法在模拟器中运行。
更新 2
我尝试删除所有监听器,看起来像这样:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myProject_layout);
}
项目顺利进行。我认为错误出在按钮侦听器中。有人可以帮忙解决吗?
logcat 中的错误:
10-24 11:41:08.006: ERROR/AndroidRuntime(644): FATAL EXCEPTION: main
10-24 11:41:08.006: ERROR/AndroidRuntime(644): java.lang.RuntimeException: Unable to start activity ComponentInfo{tamagochi.app/tamagochi.app.tamagochi}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1622)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.os.Handler.dispatchMessage(Handler.java:99)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.os.Looper.loop(Looper.java:123)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.ActivityThread.main(ActivityThread.java:3647)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at java.lang.reflect.Method.invokeNative(Native Method)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at java.lang.reflect.Method.invoke(Method.java:507)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at dalvik.system.NativeStart.main(Native Method)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.ListActivity.onContentChanged(ListActivity.java:243)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:210)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.Activity.setContentView(Activity.java:1657)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at tamagochi.app.tamagochi.onCreate(tamagochi.java:18)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1586)
10-24 11:41:08.006: ERROR/AndroidRuntime(644): ... 11 more
【问题讨论】:
-
logcat 关闭时出现什么错误?
-
我在上面提到过。 “应用程序 myProject 已意外停止。请重试。”和一个标记为“强制关闭”的按钮
-
是的,但是您会收到一个更具体的错误,其中包括日志输出中出现错误的代码中的行号。无论如何,我已经在下面的回答中准确指出了您的问题所在。
-
该警报对话框不会详细说明您的错误。您最好发布 logcat(在 eclipse 中,切换到“DDMS”透视图以查看 logcat)以便我们提供帮助。
-
我很抱歉@goto10,我不知道 logcat 在 DDMS 中。我已经发布了 logcat。
标签: android android-activity switch-statement