开发者

Android App - returning Null Pointer Exception on Eclair

I am having an issue with an Android app I am writing. It crashes on Eclair due to a NullPointerException but runs fine on Froyo and Gingerbread. Can anyone tell me how to rewrite this to avoid the Null Pointer Exception? Thanks in advance.

Edit I added the stack trace and logcat, I might have read it wrong originally, looks like it could be my TabWidget?

logcat references this line in my Home class:

tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator("Snow", res.getDrawable(R.drawable.weather2)).setContent(new Intent(this,FirstTab.class))); 

Logcat

ERROR/AndroidRuntime(314): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wilcoxis.android.kirkwood/com.wilcoxis.android.Home}: java.lang.NullPointerException
ERROR/AndroidRuntime(314):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
ERROR/AndroidRuntime(314):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
ERROR/AndroidRuntime(314):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
ERROR/AndroidRuntime(314):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
ERROR/AndroidRuntime(314):     at android.os.Handler.dispatchMessage(Handler.java:99)
ERROR/AndroidRuntime(314):     at android.os.Looper.loop(Looper.java:123)
ERROR/AndroidRuntime(314):     at android.app.ActivityThread.main(ActivityThread.java:4363)
ERROR/AndroidRuntime(314):     at java.lang.reflect.Method.invokeNative(Native Method)
ERROR/AndroidRuntime(314):     at java.lang.reflect.Method.invoke(Method.java:521)
ERROR/AndroidRuntime(314):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
ERROR/AndroidRuntime(314):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
ERROR/AndroidRuntime(314):     at dalvik.system.NativeStart.main(Native Method)
ERROR/AndroidRuntime(314): Caused by: java.lang.NullPointerException
ERROR/AndroidRuntime(314):     at android.widget.TabWidget.onFocusChange(TabWidget.java:351)
ERROR/AndroidRuntime(314):     at android.view.View.onFocusChanged(View.java:2622)
ERROR/AndroidRuntime(314):     at android.view.View.handleFocusGainInternal(View.java:2445)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.handleFocusGainInternal(ViewGroup.java:404)
ERROR/AndroidRuntime(314):     at android.view.View.requestFocus(View.java:3562)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.requestFocus(ViewGroup.java:976)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1021)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.requestFocus(ViewGroup.java:977)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1021)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.requestFocus(ViewGroup.java:980)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1021)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.requestFocus(ViewGroup.java:977)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:1021)
ERROR/AndroidRuntime(314):     at android.view.ViewGroup.requestFocus(ViewGroup.java:980)
ERROR/AndroidRuntime(314):     at android.view.View.requestFocus(View.java:3513)
ERROR/AndroidRuntime(314):     at android.view.View.requestFocus(View.java:3491)
ERROR/AndroidRuntime(314):     at android.widget.TabHost.setCurrentTab(TabHost.java:334)
ERROR/AndroidRuntime(314):     at android.widget.TabHost.addTab(TabHost.java:213)
ERROR/AndroidRuntime(314):     at com.wilcoxis.android.Home.onCreate(Home.java:83)
ERROR/AndroidRuntime(314):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
ERROR/AndroidRuntime(314):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
ERROR/AndroidRuntime(314):     ... 11 more

Stack Trace

DalvikVM[localhost:8610]    
    Thread [<3> main] (Suspended (exception NullPointerException))  
        Ta开发者_Go百科bWidget.onFocusChange(View, boolean) line: 351    
        TabWidget(View).onFocusChanged(boolean, int, Rect) line: 2622   
        TabWidget(View).handleFocusGainInternal(int, Rect) line: 2445   
        TabWidget(ViewGroup).handleFocusGainInternal(int, Rect) line: 404   
        TabWidget(View).requestFocus(int, Rect) line: 3562  
        TabWidget(ViewGroup).requestFocus(int, Rect) line: 976  
        LinearLayout(ViewGroup).onRequestFocusInDescendants(int, Rect) line: 1021   
        LinearLayout(ViewGroup).requestFocus(int, Rect) line: 977   
        TabHost(ViewGroup).onRequestFocusInDescendants(int, Rect) line: 1021    
        TabHost(ViewGroup).requestFocus(int, Rect) line: 980    
        FrameLayout(ViewGroup).onRequestFocusInDescendants(int, Rect) line: 1021    
        FrameLayout(ViewGroup).requestFocus(int, Rect) line: 977    
        PhoneWindow$DecorView(ViewGroup).onRequestFocusInDescendants(int, Rect) line: 1021  
        PhoneWindow$DecorView(ViewGroup).requestFocus(int, Rect) line: 980  
        PhoneWindow$DecorView(View).requestFocus(int) line: 3513    
        PhoneWindow$DecorView(View).requestFocus() line: 3491   
        TabHost.setCurrentTab(int) line: 334    
        TabHost.addTab(TabHost$TabSpec) line: 213   
        Home.onCreate(Bundle) line: 83  
        Instrumentation.callActivityOnCreate(Activity, Bundle) line: 1047   
        ActivityThread.performLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2459  
        ActivityThread.handleLaunchActivity(ActivityThread$ActivityRecord, Intent) line: 2512   
        ActivityThread.access$2200(ActivityThread, ActivityThread$ActivityRecord, Intent) line: 119 
        ActivityThread$H.handleMessage(Message) line: 1863  
        ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
        Looper.loop() line: 123 
        ActivityThread.main(String[]) line: 4363    
        Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method]  
        Method.invoke(Object, Object...) line: 521  
        ZygoteInit$MethodAndArgsCaller.run() line: 860  
        ZygoteInit.main(String[]) line: 618 
        NativeStart.main(String[]) line: not available [native method]  
    Thread [<13> Binder Thread #2] (Running)    
    Thread [<11> Binder Thread #1] (Running)


You're not handling the case where you get an empty string back from the service. Actually, you're not handling any cases of failure. Check that you're getting valid data back, and don't operate on reference variables (like your string array) that could potentially be null

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜