我正在处理我的项目,我遇到了问题。
我的应用程序崩溃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 :(得分:0)
我认为browserIntent可能为null,否则只接收为null,即可以初始抛出null的两个点
答案 1 :(得分:0)
正如@jens指出的那样,你不应该自己初始化MainActivity。 由于未初始化Activity的上下文,StartActivity失败。您需要使用服务的上下文。使用以下功能。将此功能复制到您自己的服务中。
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;
}