如何在我的应用程序中纠正强制关闭错误

问题描述:

我可以在我的应用程序中找到错误。当我试图执行我的应用程序强制关闭错误出现。如何在我的应用程序中纠正强制关闭错误

public class Main extends Activity { 
Button btnAdd; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    btnAdd = (Button) findViewById(R.id.btnAdd); 
    btnAdd.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent listIntent = new Intent (v.getContext(),Newbook.class) ; 
      startActivity(listIntent); 
     } 
    }); 
} 

}

和日志猫错误是

03-31 16:05:57.493: D/AndroidRuntime(387): Shutting down VM 
03-31 16:05:57.493: W/dalvikvm(387): threadid=3: thread exiting with uncaught exception (group=0x4001b188) 
03-31 16:05:57.503: E/AndroidRuntime(387): Uncaught handler: thread main exiting due to uncaught exception 
03-31 16:05:57.597: E/AndroidRuntime(387): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.sam.daybook/com.sam.daybook.DayBookActivity}: java.lang.ClassNotFoundException: com.sam.daybook.DayBookActivity in loader [email protected] 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.os.Handler.dispatchMessage(Handler.java:99) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.os.Looper.loop(Looper.java:123) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.app.ActivityThread.main(ActivityThread.java:4363) 
03-31 16:05:57.597: E/AndroidRuntime(387): at java.lang.reflect.Method.invokeNative(Native Method) 
03-31 16:05:57.597: E/AndroidRuntime(387): at java.lang.reflect.Method.invoke(Method.java:521) 
03-31 16:05:57.597: E/AndroidRuntime(387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
03-31 16:05:57.597: E/AndroidRuntime(387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
03-31 16:05:57.597: E/AndroidRuntime(387): at dalvik.system.NativeStart.main(Native Method) 
03-31 16:05:57.597: E/AndroidRuntime(387): Caused by: java.lang.ClassNotFoundException: com.sam.daybook.DayBookActivity in loader [email protected] 
03-31 16:05:57.597: E/AndroidRuntime(387): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
03-31 16:05:57.597: E/AndroidRuntime(387): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
03-31 16:05:57.597: E/AndroidRuntime(387): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
03-31 16:05:57.597: E/AndroidRuntime(387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409) 
03-31 16:05:57.597: E/AndroidRuntime(387): ... 11 more 
03-31 16:05:57.684: I/dalvikvm(387): threadid=7: reacting to signal 3 
03-31 16:05:57.863: I/dalvikvm(387): Wrote stack trace to '/data/anr/traces.txt' 
+0

在您的清单中声明了'Newbook'活动。 – dreamtale 2012-03-31 10:49:49

+0

使用'getBaseContext()'作为上下文,所以你的行应该是'Intent listIntent = new Intent(getBaseContext(),Newbook.class);' – 2012-03-31 10:52:39

+0

我认为你已经在清单中声明了一个名为DayBookActivity的活动,您的src代码,您没有具有该名称的活动, – Houcine 2012-03-31 10:54:15

尝试添加以下行到我们的项目的Android清单

<activity android:name="NAME_OF_YOUR_CLASS"> 
    <intent-filter> 
    <action android:name="NAME_OF_YOUR_INTENT"/> 
    <category android:name="android.intent.category.DEFAULT"/> 
    </intent-filter> 
</activity> 

使用以下行然后开始你的活动

startActivity(new Intent("NAME_OF_YOUR_INTENT"));

确保你的意图的名字上面的行和清单中的内容完全相同。

在这种缺乏错误的,你可以找到错误,崩溃的应用程序通过你的包名称,如:

com.sam.daybook 

和类或活动,如:

com.sam.daybook.DayBookActivity 

和右的错误是:

java.lang.ClassNotFoundException: com.sam.daybook.DayBookActivity in loader [email protected] 03-31 16:05:57.597: 

我希望这可能有助于你...

+0

我修复了这个问题,谢谢你的回复 – sam 2012-03-31 11:22:22

+0

@sam如果这有助于解决你的问题,请接受它作为答案。 – Deepak 2012-03-31 11:42:42

它看起来像Android一样找不到自己的活动类: 这是告诉您活动无法从您的代码实例化。

Unable to instantiate activity ComponentInfo{com.sam.daybook/com.sam.daybook.DayBookActivity}: 

然后这是告诉你,无法找到类com.sam.daybook.DayBookActivity

java.lang.ClassNotFoundException: com.sam.daybook.DayBookActivity in loader 

请问类DayBookActivitysrc/com/sam/daybook/内部存在?

您发布的代码是针对名为Main的课程,如果这是您期望加载的活动,我认为您可能需要将课程重命名为DayBookActivity。您还需要将Main.java文件重命名为DayBookActivity.java

试试这个 意图listIntent = new Intent(Main.this,Newbook.class);