2011-12-13 60 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