Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 截击请求队列NullPointerException_Java_Android_Android Volley - Fatal编程技术网

Java 截击请求队列NullPointerException

Java 截击请求队列NullPointerException,java,android,android-volley,Java,Android,Android Volley,我试图使用Volley库通过用户通过SearchWidget提供的搜索查询在web上查询XMLAPI 每当我输入搜索字符串时,将StringRequest添加到RequestQueue时,应用程序就会崩溃,并出现NullPointerException。 为什么会这样 我已经在使用截击和单打模式,正如在文章中推荐的那样 这是我在MainActivity中的搜索功能 在从singleton设置requestqueue之前,您正在启动搜索 因此,一旦创建,您将检查意图,然后在获得截击单例的句柄以及请

我试图使用Volley库通过用户通过SearchWidget提供的搜索查询在web上查询XMLAPI

每当我输入搜索字符串时,将StringRequest添加到RequestQueue时,应用程序就会崩溃,并出现NullPointerException。 为什么会这样

我已经在使用截击和单打模式,正如在文章中推荐的那样

这是我在MainActivity中的搜索功能


在从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);
}