Java 截击请求队列NullPointerException
我试图使用Volley库通过用户通过SearchWidget提供的搜索查询在web上查询XMLAPI 每当我输入搜索字符串时,将StringRequest添加到RequestQueue时,应用程序就会崩溃,并出现NullPointerException。 为什么会这样 我已经在使用截击和单打模式,正如在文章中推荐的那样 这是我在MainActivity中的搜索功能Java 截击请求队列NullPointerException,java,android,android-volley,Java,Android,Android Volley,我试图使用Volley库通过用户通过SearchWidget提供的搜索查询在web上查询XMLAPI 每当我输入搜索字符串时,将StringRequest添加到RequestQueue时,应用程序就会崩溃,并出现NullPointerException。 为什么会这样 我已经在使用截击和单打模式,正如在文章中推荐的那样 这是我在MainActivity中的搜索功能 在从singleton设置requestqueue之前,您正在启动搜索 因此,一旦创建,您将检查意图,然后在获得截击单例的句柄以及请
在从singleton设置requestqueue之前,您正在启动搜索 因此,一旦创建,您将检查意图,然后在获得截击单例的句柄以及请求队列的句柄之前开始搜索。尝试在意图检查之前移动截击代码,如下所示:
volley = MySingleton.getInstance(getApplicationContext());
mRequestQueue = volley.getRequestQueue();
Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
search(query);
}
你当然是对的。。休息的时间到了,如果我再也看不到这些错误了……我们都会发生:
02-22 23:08:50.636 9856-9856/com.example.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.example.app, PID: 9856
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.example.app.MainActivity.search(MainActivity.java:121)
at com.example.app.MainActivity.onCreate(MainActivity.java:83)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at dalvik.system.NativeStart.main(Native Method)
volley = MySingleton.getInstance(getApplicationContext());
mRequestQueue = volley.getRequestQueue();
Intent intent = getIntent();
if (Intent.ACTION_SEARCH.equals(intent.getAction())) {
String query = intent.getStringExtra(SearchManager.QUERY);
search(query);
}