2014-02-26 135 views
0

我写了下面的代码,现在“格拉默”按钮,程序停止。 这是我的‘主要活动’。的Android程序启动程序并点击时无法启动

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 


     Button grammerButton = (Button)findViewById(R.id.grammar); 

     grammerButton.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(MainActivity.this, Grammer.class); 
       startActivity(intent); 
      } 

     }); 

    } 

} 

的logcat的分中startActivity(intent); 错误我很无奈试图找出错误。

我张贴的logcat的错误

02-26 23:33:26.991: D/AndroidRuntime(4604): Shutting down VM 
02-26 23:33:26.991: W/dalvikvm(4604): threadid=1: thread exiting with uncaught exception (group=0x40015560) 
02-26 23:33:27.011: E/AndroidRuntime(4604): FATAL EXCEPTION: main 
02-26 23:33:27.011: E/AndroidRuntime(4604): android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.grammer/com.example.grammer.Grammer}; have you declared this activity in your AndroidManifest.xml? 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1379) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.app.Activity.startActivityForResult(Activity.java:2827) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.app.Activity.startActivity(Activity.java:2933) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at com.example.grammer.MainActivity$1.onClick(MainActivity.java:31) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.view.View.performClick(View.java:2485) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.view.View$PerformClick.run(View.java:9080) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.os.Handler.handleCallback(Handler.java:587) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.os.Handler.dispatchMessage(Handler.java:92) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.os.Looper.loop(Looper.java:123) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at android.app.ActivityThread.main(ActivityThread.java:3683) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at java.lang.reflect.Method.invokeNative(Native Method) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at java.lang.reflect.Method.invoke(Method.java:507) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
02-26 23:33:27.011: E/AndroidRuntime(4604):  at dalvik.system.NativeStart.main(Native Method) 

这是我的manifest.xml

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

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="15" /> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.grammer.MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name="com.example.grammer.grammar.Grammer" 
      android:label="@string/title_activity_grammer" > 
      <meta-data 
       android:name="android.support.PARENT_ACTIVITY" 
       android:value="com.example.grammer.MainActivity" /> 
     </activity> 
     <activity 
      android:name="com.example.grammer.grammar.GrammarRegularActivityActivity" 
      android:label="@string/title_activity_grammar_regular" > 
     </activity> 
     <activity 
      android:name="com.example.grammer.grammar.Grammer_regular_page2er_regular_page2" 
      android:label="@string/title_activity_grammer_regular_page2" > 
     </activity> 
     <activity 
    android:name="com.example.grammer.grammar.Exerciseexample.grammer.Exercise" 
      android:label="@string/title_activity_exercise" > 
     </activity> 
     <activity 
      android:name="com.example.grammer.grammar.Amisare2Amisare2" 
      android:label="@string/title_activity_amisare2" > 
     </activity> 
    </application> 

</manifest> 
+1

请发布错误的logcat输出。 – jademcosta

+0

此外,发布AndroidManifest.xml –

+0

这只是日志中的许多行中的一行,并没有显示错误。发布更多的日志。 – Pedantic

回答

1

这条线在您的清单看起来可疑的,因为它简化版,匹配相同的封装MainActivity(在道路额外的“.grammar”)

变化这样的:

android:name="com.example.grammer.grammar.Grammer" 

要这样:

android:name="com.example.grammer.Grammer" 

或者只是

android:name=".Grammer" 
+0

非常感谢。我无法弄清楚对我的Manifest文件造成了如此巨大的损失。清除一切。谢谢.... – faz

0

OnClickListener中的'startActivity(...)'方法调用应该读取MainActivity.this.startActivity(...)。

请记住,您在监听器中执行的上下文是监听器,而不是活动(监听器中的“this”会听到监听器,而不是活动)。