2011-03-24 36 views
0

java.lang.IllegalArgumentException:列'data3'不存在 whats with data3 column ??android調試錯誤列'data3'不存在

logcat的

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):致命 例外:主

7月3日至24日:05:36.091 : ERROR/AndroidRuntime(2540): 了java.lang.RuntimeException:無法 開始活動 ComponentInfo {fypj.e/fypj.e .E}: java.lang.IllegalArgumentException異常: 列 'DATA3' 不存在

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 android.app.ActivityThread。 performLaunchActivity(ActivityThread.java:2663)

七月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 android.app.ActivityThread.access $ 2300(ActivityThread.java:125)

7月3日至24日:05:36.091 : ERROR/AndroidRuntime(2540):在 android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2033)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540) :at android.os.Handler.dispatchMessage(Handler.java:99)

03-24 07:05:36.091: ERROR/AndroidRuntime(2540):在 android.os.Looper.loop(Looper.java:123)

03-24 07:05: 36.091: ERROR/AndroidRuntime(2540):在 android.app.ActivityThread.main(ActivityThread.java:4627)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 java.lang.reflect.Method.invokeNative(Native 方法)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 java.lang.reflect.Method.invoke(Method.java:521)

03 -24 07:05:36.091: 錯誤/ AndroidRuntime(2540):在 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。運行(ZygoteInit.java:868)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626 )

03-24 07:05:36.091: ERROR/AndroidRuntime(2540):在 dalvik.system.NativeStart.main(母語 方法)

03-24 07:05: 36.091: 錯誤/ AndroidRuntime(2540): java.lang.IllegalArgumentException異常:致 列 'DATA3' 不存在

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 機器人。 database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:314)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 android.database.CursorWrapper.getColumnIndexOrThrow(CursorWrapper.java:99 )

7月3日至二十四日:05:36.091: ERROR/AndroidRuntime(2540):在 android.widget.SimpleCursorAdapter.findColumns(SimpleCursorAdapter.java:312)

7月3日至二十四日:05:36.091 : ERROR/AndroidRuntime(2540):在 android.widget.SimpleCursorAdapter(SimpleCursorAdapter.java:87)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540):在 fypj.eeonCreate(e.java:48)

03-24 07:05:36.091: ERROR/AndroidRuntime(2540):在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

03-24 07:05 :36.091: ERROR/AndroidRuntime(2540):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)

7月3日至24日:05:36.091: ERROR/AndroidRuntime(2540) :... 11 更

package fypj.e; 

import android.app.ListActivity; 
import android.content.ContentUris; 
import android.content.ContentValues; 
import android.database.Cursor; 
import android.net.Uri; 
import android.os.Bundle; 
import android.provider.Contacts.People; 
import android.provider.ContactsContract; 
import android.provider.ContactsContract.CommonDataKinds.Phone; 
import android.provider.ContactsContract.CommonDataKinds.StructuredName; 
import android.provider.ContactsContract.Data; 
import android.provider.ContactsContract.RawContacts; 
import android.widget.*; 

public class e extends ListActivity { 
    private SimpleCursorAdapter myAdapter;  @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     ContentValues values = new ContentValues(); 
     values.put(RawContacts.ACCOUNT_TYPE, ""); 
     values.put(RawContacts.ACCOUNT_NAME, ""); 
     Uri rawContactUri = 
getContentResolver().insert(RawContacts.CONTENT_URI, values); 
     long rawContactId = ContentUris.parseId(rawContactUri); 


     values.clear(); 
     values.put(Data.RAW_CONTACT_ID, rawContactId); 
     values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE); 
     values.put(StructuredName.DISPLAY_NAME, "Misha"); 
     values.put(Phone.LABEL, "Mis"); 
     values.put(ContactsContract.Data.DATA3, "View Contact"); 
     getContentResolver().insert(Data.CONTENT_URI, values); 


     //contentResolver = getContentResolver(); 



     Cursor cursor = getContentResolver().query(People.CONTENT_URI, null, null, null, null);   
     startManagingCursor(cursor);   
     String[] column = new String[] {Phone.LABEL};   
     int[] names = new int[] {R.id.contact_name};   
     myAdapter = new SimpleCursorAdapter(this, R.layout.main, cursor, column, names);   
     setListAdapter(myAdapter);  
    } 
} 
+2

對我來說顯而易見的是,有很多信息需要回答這個問題。爲什麼不添加一些代碼?付出一些努力。 – Nanne 2011-03-24 08:34:31

+1

我很難懷疑任何人都可以回答這個問題。給我們更多的信息。你在做什麼,在什麼地方拋出一些示例代碼。 – 2011-03-24 08:35:16

回答

0

我不知道你在使用哪個sdk,但在2.2中大部分數據包都被刪除了。然而,問題在於具有常量值「data3」的Phone.Label列在光標返回的列中不存在。

+0

我正在使用2.2。包的折舊是什麼意思? 我該如何解決它呢? – user669046 2011-03-24 09:51:53

+0

例如http://developer.android.com/reference/android/provider/Contacts.People.ContactMethods.html Constacts.People已被棄用,例如不再被支持,你應該避免使用它。檢查支持列的文檔,看看您可以選擇哪一列。 – 2011-03-24 11:38:53

+0

感謝致謝 我gt它工作樂 – user669046 2011-03-27 15:59:46

0

無非是猜測可能的,但也許您正在使用「數據3」作爲參數傳遞給一些功能,做數據庫的工作,「DATA3」在你的數據庫中不存在?

+0

我不確定。我如何檢查或去回合這個問題? – user669046 2011-03-24 09:58:18