这是我从Android手机获取联系人列表的JAVA代码。它在Android 2.2.2版本中运行良好,但在android 4.2.2版本上无法运行
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.phonenumber);
lv= (ListView) findViewById(R.id.lv);
getCnumber();
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,aa);
lv.setAdapter(adapter);
}
public void getCnumber()
{
ContentResolver cr=this.getContentResolver();
Cursor phones = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext()) {
phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
// System.out.println(".................."+phoneNumber);
aa.add(phoneNumber);
}
}
这是我的xml代码
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android1="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" >
<ListView
android1:id="@+id/lv"
android1:layout_width="match_parent"
android1:layout_height="wrap_content"
android1:layout_alignParentLeft="true"
android1:layout_alignParentTop="true" >
</ListView>
</RelativeLayout>
这是我得到的错误 在这里输入代码
10-12 09:54:50.788: E/AndroidRuntime(2739): FATAL EXCEPTION: main
10-12 09:54:50.788: E/AndroidRuntime(2739): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.registeration/com.example.registeration.MobileNumber}: java.lang.NullPointerException: storage == null
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.os.Handler.dispatchMessage(Handler.java:99)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.os.Looper.loop(Looper.java:137)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.ActivityThread.main(ActivityThread.java:5041)
10-12 09:54:50.788: E/AndroidRuntime(2739): at java.lang.reflect.Method.invokeNative(Native Method)
10-12 09:54:50.788: E/AndroidRuntime(2739): at java.lang.reflect.Method.invoke(Method.java:511)
10-12 09:54:50.788: E/AndroidRuntime(2739): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
10-12 09:54:50.788: E/AndroidRuntime(2739): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
10-12 09:54:50.788: E/AndroidRuntime(2739): at dalvik.system.NativeStart.main(Native Method)
10-12 09:54:50.788: E/AndroidRuntime(2739): Caused by: java.lang.NullPointerException: storage == null
10-12 09:54:50.788: E/AndroidRuntime(2739): at java.util.Arrays$ArrayList.<init>(Arrays.java:38)
10-12 09:54:50.788: E/AndroidRuntime(2739): at java.util.Arrays.asList(Arrays.java:154)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.widget.ArrayAdapter.<init>(ArrayAdapter.java:128)
10-12 09:54:50.788: E/AndroidRuntime(2739): at com.example.registeration.MobileNumber.onCreate(MobileNumber.java:66)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.Activity.performCreate(Activity.java:5104)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
10-12 09:54:50.788: E/AndroidRuntime(2739): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
10-12 09:54:50.788: E/AndroidRuntime(2739): ... 11 more
10-12 09:54:54.735: I/Process(2739): Sending signal. PID: 2739 SIG: 9