2012-08-17 49 views
0

我目前正在處理我的項目,並且遇到了問題。在startActivity期間發生java.lang.NullPointerExceptionException()

當涉及到SearchDic()時,我的應用程序崩潰。

這裏是我的代碼:

public int SearchDic(final CharSequence received) { 
    Handler mHandler = new Handler(); 
    mHandler.postDelayed(new Runnable() { 
    @Override 
    public void run(){ 
     Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.endic.naver.com/search.nhn?query=" + received + "&searchOption=entryIdiom&preQuery=&forceRedirect=")); 
     startActivity(browserIntent); 
    }}, 10); 
return 0; 
} 

在我的應用程序的服務調用此SearchDic(),所以我用非靜態的方式......如

// Local Variable Received 
MainActivity a = new MainActivity(); 
a.SearchDic(Received); 

我試過logcat的,但它不斷崩潰在startActivity()部分,我可以看到錯誤消息java.lang.NullPointerException

這裏是我的logcat錯誤:

08-17 16:16:10.364: D/AndroidRuntime(19322): Shutting down VM 
08-17 16:16:10.364: W/dalvikvm(19322): threadid=1: thread exiting with uncaught exception (group=0x40c7c1f8) 
08-17 16:16:10.369: E/AndroidRuntime(19322): FATAL EXCEPTION: main 
08-17 16:16:10.369: E/AndroidRuntime(19322): java.lang.NullPointerException 
08-17 16:16:10.369: E/AndroidRuntime(19322): at android.app.Activity.startActivityForResult(Activity.java:3252) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at android.app.Activity.startActivity(Activity.java:3359) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at com.wjuni.easydic.MainActivity$1.run(MainActivity.java:80) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at android.os.Handler.handleCallback(Handler.java:605) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at android.os.Handler.dispatchMessage(Handler.java:92) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at android.os.Looper.loop(Looper.java:137) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at android.app.ActivityThread.main(ActivityThread.java:4514) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at java.lang.reflect.Method.invokeNative(Native Method) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at java.lang.reflect.Method.invoke(Method.java:511) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760) 
08-17 16:16:10.369: E/AndroidRuntime(19322): at dalvik.system.NativeStart.main(Native Method) 

是什麼在我的應用程序的問題,我應該怎麼稱呼這個功能呢?請幫幫我。

謝謝。

+0

檢查是否'browserIntent'是'null.'?' – Nishant 2012-08-17 07:08:47

+0

請發表您的logcat的錯誤,這樣我們就可以知道究竟在何處發生異常。 – android 2012-08-17 07:10:02

+0

MainActivity和Handler的用途是什麼?你能不能從你的服務代碼創建intent和startActivity? – Sameer 2012-08-17 07:16:09

回答

0

由於@jens指出你不應該自己初始化MainActivity。 StartActivity失敗,因爲Activity的上下文未初始化。你需要使用你的服務的上下文。使用下面的功能。將此功能複製到您自己的服務中。

public int SearchDic(final CharSequence received, final Context context) { 
    Handler mHandler = new Handler(); 
    mHandler.postDelayed(new Runnable() { 
    @Override 
    public void run(){ 
     Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse("http://m.endic.naver.com/search.nhn?query=" + received + "&searchOption=entryIdiom&preQuery=&forceRedirect=")); 
     context.startActivity(browserIntent); 
    }}, 10); 
return 0; 
} 
+0

感謝您的回答。 – 2012-08-17 08:06:04

0

我覺得browserIntent可能是空的,否則只收到空,這兩點在空可以初始化拋出

+0

我這麼認爲,但我不知道應該如何管理它。 – 2012-08-17 07:29:10

相關問題