2012-07-21 57 views
1

單擊AlertDialog框後,出現此錯誤OK按鈕意圖到下一個活動,數據仍然被插入數據庫,但應用程序只是崩潰。AlertDialog導致java.lang.RuntimeException:無法實例化活動ComponentInfo

logcat的錯誤:

07-22 02:26:08.603: E/JSON(10170): {"tag":"register","success":1,"error":0,"uid":"500af44ea075b5.28543539","user":{"name":"Dddds","email":"Saasa","imei":"359616041330986","created_at":"2012-07-22 02:26:22","updated_at":null}} 
07-22 02:26:08.623: E/JSON(10170): {"uid":"500af44ea075b5.28543539","error":0,"user":{"created_at":"2012-07-22 02:26:22","updated_at":null,"email":"Saasa","imei":"359616041330986","name":"Dddds"},"success":1,"tag":"register"} 
07-22 02:26:08.758: D/dalvikvm(10170): GC_CONCURRENT freed 142K, 3% free 13469K/13831K, paused 7ms+2ms 
07-22 02:26:09.608: D/dalvikvm(10170): newInstance failed: p0 i0 [0 a1 
07-22 02:26:09.608: D/AndroidRuntime(10170): Shutting down VM 
07-22 02:26:09.608: W/dalvikvm(10170): threadid=1: thread exiting with uncaught exception (group=0x40c681f8) 
07-22 02:26:09.613: E/AndroidRuntime(10170): FATAL EXCEPTION: main 
07-22 02:26:09.613: E/AndroidRuntime(10170): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{nyp.android.project/nyp.android.project.DashboardActivity}: java.lang.InstantiationException: can't instantiate class nyp.android.project.DashboardActivity 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.app.ActivityThread.access$600(ActivityThread.java:127) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.os.Looper.loop(Looper.java:137) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.app.ActivityThread.main(ActivityThread.java:4511) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at java.lang.reflect.Method.invokeNative(Native Method) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at java.lang.reflect.Method.invoke(Method.java:511) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at dalvik.system.NativeStart.main(Native Method) 
07-22 02:26:09.613: E/AndroidRuntime(10170): Caused by: java.lang.InstantiationException: can't instantiate class nyp.android.project.DashboardActivity 
07-22 02:26:09.613: E/AndroidRuntime(10170): at java.lang.Class.newInstanceImpl(Native Method) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at java.lang.Class.newInstance(Class.java:1319) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.app.Instrumentation.newActivity(Instrumentation.java:1026) 
07-22 02:26:09.613: E/AndroidRuntime(10170): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882) 
07-22 02:26:09.613: E/AndroidRuntime(10170): ... 11 more 
07-22 02:26:59.308: I/Process(10170): Sending signal. PID: 10170 SIG: 9 
07-22 02:31:13.878: D/OpenGLRenderer(10938): Flushing caches (mode 0) 
07-22 02:31:15.773: D/dalvikvm(10938): GC_CONCURRENT freed 155K, 3% free 13114K/13511K, paused 2ms+2ms 
07-22 02:31:17.708: D/OpenGLRenderer(10938): Flushing caches (mode 0) 
07-22 02:31:26.963: E/JSON(10938): {"tag":"register","success":1,"error":0,"uid":"500af58d0aa288.05836094","user":{"name":"Test","email":"Test","imei":"359616041330986","created_at":"2012-07-22 02:31:41","updated_at":null}} 
07-22 02:31:26.968: E/JSON(10938): {"uid":"500af58d0aa288.05836094","error":0,"user":{"created_at":"2012-07-22 02:31:41","updated_at":null,"email":"Test","imei":"359616041330986","name":"Test"},"success":1,"tag":"register"} 
07-22 02:31:27.008: D/dalvikvm(10938): GC_FOR_ALLOC freed 214K, 3% free 13240K/13639K, paused 20ms 
07-22 02:31:28.468: D/dalvikvm(10938): newInstance failed: p0 i0 [0 a1 
07-22 02:31:28.468: D/AndroidRuntime(10938): Shutting down VM 
07-22 02:31:28.468: W/dalvikvm(10938): threadid=1: thread exiting with uncaught exception (group=0x40c681f8) 
07-22 02:31:28.473: E/AndroidRuntime(10938): FATAL EXCEPTION: main 
07-22 02:31:28.473: E/AndroidRuntime(10938): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{nyp.android.project/nyp.android.project.DashboardActivity}: java.lang.InstantiationException: can't instantiate class nyp.android.project.DashboardActivity 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.app.ActivityThread.access$600(ActivityThread.java:127) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.os.Looper.loop(Looper.java:137) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.app.ActivityThread.main(ActivityThread.java:4511) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at java.lang.reflect.Method.invokeNative(Native Method) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at java.lang.reflect.Method.invoke(Method.java:511) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:980) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:747) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at dalvik.system.NativeStart.main(Native Method) 
07-22 02:31:28.473: E/AndroidRuntime(10938): Caused by: java.lang.InstantiationException: can't instantiate class nyp.android.project.DashboardActivity 
07-22 02:31:28.473: E/AndroidRuntime(10938): at java.lang.Class.newInstanceImpl(Native Method) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at java.lang.Class.newInstance(Class.java:1319) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.app.Instrumentation.newActivity(Instrumentation.java:1026) 
07-22 02:31:28.473: E/AndroidRuntime(10938): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882) 
07-22 02:31:28.473: E/AndroidRuntime(10938): ... 11 more 

代碼:

  JSONObject json = userFunction.registerUser(name, email, password, IMEI.getText().toString()); 

      // check for login response 
      try { 
       if (json.getString(KEY_SUCCESS) != null) { 
        registerErrorMsg.setText(""); 
        String res = json.getString(KEY_SUCCESS); 
        if(Integer.parseInt(res) == 1){ 
         // user successfully registered 
         // Store user details in SQLite Database 
         DatabaseHandler db = new DatabaseHandler(getApplicationContext()); 
         JSONObject json_user = json.getJSONObject("user"); 

         AlertDialog alertDialog = new AlertDialog.Builder(RegisterActivity.this).create(); 

         // Setting Dialog Title 
         alertDialog.setTitle("Registration"); 

         // Setting Dialog Message 
         alertDialog.setMessage("Registration successful"); 

         // Setting Icon to Dialog 
         alertDialog.setIcon(R.drawable.tick); 

         // Setting OK Button 
         alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 

         public void onClick(DialogInterface dialog, int which) { 
         // Write your code here to execute after dialog closed 
         //Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show(); 

         // Launch Dashboard Screen 
         Intent dashboard = new Intent(getApplicationContext(), DashboardActivity.class); 

         // Close all views before launching Dashboard 
         dashboard.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
         startActivity(dashboard); 

         // Close Registration Screen 
         finish(); 

         } 
         }); 

         // Showing Alert Message 
         alertDialog.show();  

         // Clear all previous data in database 
         userFunction.logoutUser(getApplicationContext()); 
         db.addUser(json_user.getString(KEY_NAME), json_user.getString(KEY_EMAIL), json.getString(KEY_UID), json_user.getString(KEY_CREATED_AT), json_user.getString(KEY_IMEI));      

        }else{ 
         // Error in registration 
         registerErrorMsg.setText("Error occured in registration"); 
        } 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
+0

意圖儀表盤=新意圖(getApplicationContext(),DashboardActivity.class);在此使用活動上下文中,而不是應用程序上下文.... – 2012-07-21 19:01:52

+0

發佈DashboardActivity代碼並確保其包含在清單文件中。 – Egor 2012-07-21 19:35:14

回答

2

我從來沒有見過getApplicationContext創建的意圖()。您是否使用ClassName.this來嘗試它?

通常它是:

Intent intent = new Intent(CurrentActivity.this, NextActivity.class); 
+0

試過,但仍然錯誤:( – dythe 2012-07-21 19:08:53

+0

嗯,你有它在清單,對嗎? – leenephi 2012-07-21 19:16:05

+0

是的,它在清單。 – dythe 2012-07-21 19:22:25

相關問題