2013-05-07 90 views
0

我开始为我的android应用程序创建一个新的活动,并且当我测试它时,我遇到了一个问题。当我触摸按钮进入新的活动时,该应用程序将崩溃并发送回主要活动。简单的Android活动导致崩溃

这是我与转到新的活动按钮活动:

package brian.android.testgame; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class BeginnerLevelSelector extends Activity { 

protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.beginner_level_selector); 

    Button level1button = (Button) findViewById(R.id.bl1); 

    final Intent level1activity = new Intent(this, Level1Activity.class); 

    level1button.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      startActivity(level1activity); 
     } 
    }); 

} 

} 

这里是我的活动时,我尝试启动(即崩溃是的,这是所有我输入之前,我发现这个问题)

package brian.android.testgame; 

import android.app.Activity; 
import android.os.Bundle; 

public class Level1Activity extends Activity { 

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main_menu); 

} 

} 

这里是我的日志,当应用程序崩溃:

05-06 21:07:29.085: E/AndroidRuntime(20391): FATAL EXCEPTION: main 
05-06 21:07:29.085: E/AndroidRuntime(20391): android.content.ActivityNotFoundException: Unable to find explicit activity class {brian.android.testgame/brian.android.testgame.Level1Activity}; have you declared this activity in your AndroidManifest.xml? 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1634) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1510) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.app.Activity.startActivityForResult(Activity.java:3244) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.app.Activity.startActivity(Activity.java:3351) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at brian.android.testgame.BeginnerLevelSelector$1.onClick(BeginnerLevelSelector.java:22) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.view.View.performClick(View.java:3549) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.view.View$PerformClick.run(View.java:14400) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.os.Handler.handleCallback(Handler.java:605) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.os.Handler.dispatchMessage(Handler.java:92) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.os.Looper.loop(Looper.java:154) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at android.app.ActivityThread.main(ActivityThread.java:4944) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at java.lang.reflect.Method.invokeNative(Native Method) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at java.lang.reflect.Method.invoke(Method.java:511) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-06 21:07:29.085: E/AndroidRuntime(20391): at dalvik.system.NativeStart.main(Native Method) 
+0

显然在日志陈述,声明你'Level1Activity'在'manifest.xml'。 – Aprian 2013-05-07 01:18:52

+0

我的天啊。日志说'你有没有在你的AndroidManifest.xml中声明这个活动?' – midhunhk 2013-05-07 04:04:38

回答

1

在日志:

.ActivityNotFoundException:无法找到明确的活动类 {brian.android.testgame/brian.android.testgame.Level1Activity};

表示您忘记注册Level1Activity活动AndroidManifest.xml。所以宣布它作为AndroidManifest:

<activity android:name=".Level1Activity" /> 
+0

谢谢!我不能相信我错过了这一点。 – user2154477 2013-05-07 01:21:05

1

在AndroidManifest.xml中添加活性

<activity 
    android:name=".Level1Activity" > 
    <intent-filter> 
     <action android:name="android.intent.action.VIEW" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 
0

你需要声明你的活动在manifest.xml文件:

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

一好的提示是,每当你创建一个新的活动时,立即在清单文件中声明它以避免更多的错误。 :d

干杯,