2011-12-13 58 views
0

我正在通过试验tutorial来学习Android。当使用简单的RatingBar时,我得到了一个奇怪的NullPointerException。这里是我的代码:带简单评级栏的NullPointerException异常

public class HelloRatingBarActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     final RatingBar ratingbar = (RatingBar) findViewById(R.id.ratingbar); 
     ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() { 
      public void onRatingChanged(RatingBar ratingBar, float rating, boolean fromUser) { 
       Toast.makeText(HelloRatingBarActivity.this, "New Rating: " + rating, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
    } 
} 

这里是main.xml中:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <RatingBar android:id="@+id/ratingbar" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:numStars="5" 
     android:stepSize="1.0"/> 
</LinearLayout> 

这里是日志:

12-13 21:51:51.878: D/gralloc_goldfish(530): Emulator without GPU emulation detected. 
12-13 21:51:57.338: D/AndroidRuntime(530): Shutting down VM 
12-13 21:51:57.338: W/dalvikvm(530): threadid=1: thread exiting with uncaught exception (group=0x409951f8) 
12-13 21:51:57.408: E/AndroidRuntime(530): FATAL EXCEPTION: main 
12-13 21:51:57.408: E/AndroidRuntime(530): java.lang.NullPointerException 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.widget.AbsSeekBar.onTouchEvent(AbsSeekBar.java:338) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.View.dispatchTouchEvent(View.java:5462) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1680) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1680) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1680) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:1953) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1680) 
12-13 21:51:57.408: E/AndroidRuntime(530): at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1882) 
12-13 21:51:57.408: E/AndroidRuntime(530): at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1361) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.app.Activity.dispatchTouchEvent(Activity.java:2364) 
12-13 21:51:57.408: E/AndroidRuntime(530): at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1830) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.View.dispatchPointerEvent(View.java:5638) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewRootImpl.deliverPointerEvent(ViewRootImpl.java:2827) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.view.ViewRootImpl.handleMessage(ViewRootImpl.java:2406) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.os.Handler.dispatchMessage(Handler.java:99) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.os.Looper.loop(Looper.java:137) 
12-13 21:51:57.408: E/AndroidRuntime(530): at android.app.ActivityThread.main(ActivityThread.java:4340) 
12-13 21:51:57.408: E/AndroidRuntime(530): at java.lang.reflect.Method.invokeNative(Native Method) 
12-13 21:51:57.408: E/AndroidRuntime(530): at java.lang.reflect.Method.invoke(Method.java:511) 
12-13 21:51:57.408: E/AndroidRuntime(530): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
12-13 21:51:57.408: E/AndroidRuntime(530): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
12-13 21:51:57.408: E/AndroidRuntime(530): at dalvik.system.NativeStart.main(Native Method) 

我不知道该NullPointerException异常是如何发生的。任何帮助表示赞赏!

+0

尝试清洁您的项目,然后重新运行它。项目 - >清洁... – kaspermoerch

+0

@KasperMoerch我尝试过,但错误仍然 –

回答

0

@Cheng龙:这是一个与ICS 4.0.1模拟器中的错误 - >Info about the bug

+0

似乎它是IceCreamSandwich中的错误。他们发布了错误修复吗? –

+0

尝试更新到新的SDK。如果这不能解决问题,可能会在下一个版本中解决。 – porkshire