2012-02-04 27 views
0

我已經開始從android開發書中做一些練習。 我所做的是eclipse中的基本android:android.process.acore進程意外停止

  • 創建項目

  • 輸入一些代碼

    package com.wuhu.testapps; 
    
    import android.app.Activity; 
    import android.app.ListActivity; 
    import android.content.Intent; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.ArrayAdapter; 
    import android.widget.ListView; 
    
    public class AndroidbasicsActivity extends ListActivity { 
        String tests[] = {"LifeCycleTest", "SingleTouchTest","MultiTouchTest"}; 
    
        /** Called when the activity is first created. */ 
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
         super.onCreate(savedInstanceState); 
         //setContentView(R.layout.main); 
         setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,tests));   
    } 
    
        protected void onListItemClick(ListView list, View view, int position, long id) 
    {  
        super.onListItemClick(list, view, position, id); 
        String testName = tests[position]; 
        try 
        { 
         Class clazz = Class.forName("com.wuhu.testapps." + testName); 
         Intent intent = new Intent(this, clazz); 
         startActivity(intent); 
        } 
        catch(ClassNotFoundException e) 
        { 
         e.printStackTrace(); 
        } 
        } 
    } 
    
  • 運行的Android應用程序

  • VM在後臺活動開始,但錯誤不斷出現'android.process.acore進程意外停止'強制關閉。是

在logcat的錯誤的前幾行如下:

02-04 03:05:21.218: ERROR/ContactsProvider(343): Cannot start provider 
02-04 03:05:21.218: ERROR/ContactsProvider(343): java.lang.IllegalStateException: error upgrading the database to version 353 
02-04 03:05:21.218: ERROR/ContactsProvider(343): at com.android.providers.contacts.ContactsDatabaseHelper.onUpgrade(ContactsDatabaseHelper.java:1545) 
02-04 03:05:21.218: ERROR/ContactsProvider(343): at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:132) 
02-04 03:05:21.218: ERROR/ContactsProvider(343): at com.android.providers.contacts.ContactsDatabaseHelper.getWritableDatabase(ContactsDatabaseHelper.java:2550) 
02-04 03:05:21.218: ERROR/ContactsProvider(343): at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187) 
02-04 03:05:21.218: ERROR/ContactsProvider(343): at com.android.providers.contacts.LegacyApiSupport.<init>(LegacyApiSupport.java:525) 

我不知道是怎麼回事錯,誰能幫助我? 試圖尋找答案,但利用。 在此先感謝,

回答

1

請嘗試以下操作,從您的下方刪除註釋。

//setContentView(R.layout.main);setContentView(R.layout.main);

,然後嘗試重新運行。

+0

感謝您的評論。不知道爲什麼該行被註釋掉,但取消註釋並沒有幫助。我已經從SDK中加載了另一個示例項目,並且也收到了錯誤。看起來像一個配置問題,也許,任何想法?在此先感謝 – wuhu 2012-02-04 03:46:54

+0

,歡迎您告訴我什麼是未來的錯誤消息? – Lucifer 2012-02-04 03:48:46

+0

Thx您的評論。即使我不運行任何新代碼(所以我只是用eclipse啓動虛擬機),我仍然得到了上述錯誤。有任何想法嗎 ?在此先感謝 – wuhu 2012-02-04 07:45:23

1

從例外,它看起來像sqlite的原因這個問題,Anriod有機制,它可以自動更新數據庫,如果重寫onUpgrade方法,就像下面:

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    String sql = "DROP TABLE IF EXISTS " + TABLE_NAME; 
    db.execSQL(sql); 
    onCreate(db); 
} 
+0

Thx爲您的評論。 即使我不運行任何新代碼(所以我只是用eclipse啓動虛擬機),我仍然得到上面提到的錯誤。 任何想法? 提前致謝 – wuhu 2012-02-04 07:44:32

2

我通過以下固定它方法。

Android虛擬設備管理器>新增

重新編寫Android虛擬設備。舊設置刪除。

1

問題不在於您的代碼。即使您直接虛擬設備,也應該得到相同的錯誤。

創建新的虛擬設備效果很好。確保刪除舊的。