Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/390.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_Multithreading_Android Asynctask - Fatal编程技术网

Java 线程以未捕获的nullpointerexception退出

Java 线程以未捕获的nullpointerexception退出,java,android,multithreading,android-asynctask,Java,Android,Multithreading,Android Asynctask,该应用程序在运行4.1的Note2中运行良好,但在运行htc one的4.2中,我得到一个“线程以未捕获的异常退出”和NullPointerexception。我向您保证id匹配中没有错误(我已经反复检查了好几次)。该应用程序基本上从Google输出最高的资源解析图像。 这是航海日志 11-15 12:18:54.589: D/dalvikvm(14843): Late-enabling CheckJNI 11-15 12:18:54.700: W/ResourceType(14843): Sk

该应用程序在运行4.1的Note2中运行良好,但在运行htc one的4.2中,我得到一个“线程以未捕获的异常退出”和NullPointerexception。我向您保证id匹配中没有错误(我已经反复检查了好几次)。该应用程序基本上从Google输出最高的资源解析图像。 这是航海日志

11-15 12:18:54.589: D/dalvikvm(14843): Late-enabling CheckJNI
11-15 12:18:54.700: W/ResourceType(14843): Skipping entry 0x7f040005 in package table 0 because it is not complex!
11-15 12:18:54.700: W/ResourceType(14843): Skipping entry 0x7f040005 in package table 0 because it is not complex!
11-15 12:18:54.710: W/ResourceType(14843): Skipping entry 0x7f040005 in package table 0 because it is not complex!
11-15 12:18:54.710: W/ResourceType(14843): Skipping entry 0x7f040005 in package table 0 because it is not complex!
11-15 12:18:54.750: D/TAG(14843): MainActivity has started.
11-15 12:18:54.800: D/libEGL(14843): loaded /system/lib/egl/libEGL_adreno200.so
11-15 12:18:54.800: D/libEGL(14843): loaded /system/lib/egl/libGLESv1_CM_adreno200.so
11-15 12:18:54.810: D/libEGL(14843): loaded /system/lib/egl/libGLESv2_adreno200.so
11-15 12:18:54.810: I/Adreno200-EGL(14843): <qeglDrvAPI_eglInitialize:269>: EGL 1.4 QUALCOMM build: AU_LINUX_ANDROID_JB_VANILLA.04.02.02.60.051_msm8960_JB_VANILLA_CL2997615_release_AU (CL2997615)
11-15 12:18:54.810: I/Adreno200-EGL(14843): Build Date: 04/11/13 Thu
11-15 12:18:54.810: I/Adreno200-EGL(14843): Local Branch: 
11-15 12:18:54.810: I/Adreno200-EGL(14843): Remote Branch: quic/mako_jb_mr1
11-15 12:18:54.810: I/Adreno200-EGL(14843): Local Patches: NONE
11-15 12:18:54.810: I/Adreno200-EGL(14843): Reconstruct Branch: AU_LINUX_ANDROID_JB_VANILLA.04.02.02.60.051 +  NOTHING
11-15 12:18:54.850: D/OpenGLRenderer(14843): Enabling debug mode 0
11-15 12:18:58.704: D/TAG(14843): In button listener
11-15 12:18:58.704: D/TAG(14843): String has been added!!!
11-15 12:18:58.714: D/TAG(14843): Making the fragment now!!
11-15 12:18:58.714: D/TAG(14843): Arguments passed!!
11-15 12:18:58.714: D/TAG(14843): Fragment made!!
11-15 12:18:58.724: D/AndroidRuntime(14843): Shutting down VM
11-15 12:18:58.734: W/dalvikvm(14843): threadid=1: thread exiting with uncaught exception (group=0x41bba930)
11-15 12:18:58.754: E/AndroidRuntime(14843): FATAL EXCEPTION: main
11-15 12:18:58.754: E/AndroidRuntime(14843): java.lang.NullPointerException
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.AbsListView.obtainView(AbsListView.java:2159)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.ListView.makeAndAddView(ListView.java:1831)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.ListView.fillDown(ListView.java:674)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.ListView.fillFromTop(ListView.java:735)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.ListView.layoutChildren(ListView.java:1652)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.AbsListView.onLayout(AbsListView.java:1994)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.View.layout(View.java:14015)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:702)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.View.layout(View.java:14015)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.View.layout(View.java:14015)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.View.layout(View.java:14015)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.View.layout(View.java:14015)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1892)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1711)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.Choreographer.doCallbacks(Choreographer.java:562)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.Choreographer.doFrame(Choreographer.java:532)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.os.Handler.handleCallback(Handler.java:725)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.os.Handler.dispatchMessage(Handler.java:92)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.os.Looper.loop(Looper.java:137)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at android.app.ActivityThread.main(ActivityThread.java:5227)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at java.lang.reflect.Method.invokeNative(Native Method)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at java.lang.reflect.Method.invoke(Method.java:511)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
11-15 12:18:58.754: E/AndroidRuntime(14843):    at dalvik.system.NativeStart.main(Native Method)
11-15 12:18:54.589:D/dalvikvm(14843):延迟启用CheckJNI
11-15 12:18:54.700:W/ResourceType(14843):跳过包表0中的条目0x7f040005,因为它并不复杂!
11-15 12:18:54.700:W/ResourceType(14843):跳过包表0中的条目0x7f040005,因为它并不复杂!
11-15 12:18:54.710:W/ResourceType(14843):跳过包表0中的条目0x7f040005,因为它并不复杂!
11-15 12:18:54.710:W/ResourceType(14843):跳过包表0中的条目0x7f040005,因为它并不复杂!
11-15 12:18:54.750:D/TAG(14843):主活动已开始。
11-15 12:18:54.800:D/libEGL(14843):loaded/system/lib/egl/libEGL_adreno200.so
11-15 12:18:54.800:D/libEGL(14843):loaded/system/lib/egl/libGLESv1_CM_adreno200.so
11-15 12:18:54.810:D/libEGL(14843):loaded/system/lib/egl/libGLESv2_adreno200.so
11-15 12:18:54.810:I/Adreno200 EGL(14843)::EGL 1.4高通公司版本:AU_LINUX_ANDROID_JB_VANILLA.04.02.02.60.051_msm8960_JB_VANILLA_CL2997615_发布版(CL2997615)
11-15 12:18:54.810:I/Adreno200 EGL(14843):建造日期:2013年11月4日星期四
11-15 12:18:54.810:I/Adreno200 EGL(14843):本地分支机构:
11-15 12:18:54.810:I/Adreno200 EGL(14843):远程分支:quic/mako_jb_mr1
11-15 12:18:54.810:I/Adreno200 EGL(14843):局部斑块:无
11-15 12:18:54.810:I/Adreno200 EGL(14843):重构分支:AU_LINUX_ANDROID_JB_VANILLA.04.02.02.60.051+NOTHING
11-15 12:18:54.850:D/OpenGLRenderer(14843):启用调试模式0
11-15 12:18:58.704:D/TAG(14843):在按钮侦听器中
11-15 12:18:58.704:D/TAG(14843):字符串已添加!!!
11-15 12:18:58.714:D/TAG(14843):现在制作碎片!!
11-15 12:18:58.714:D/TAG(14843):参数已通过!!
11-15 12:18:58.714:D/标签(14843):碎片制造!!
11-15 12:18:58.724:D/AndroidRuntime(14843):关闭虚拟机
11-15 12:18:58.734:W/dalvikvm(14843):threadid=1:线程退出时出现未捕获异常(组=0x41bba930)
11-15 12:18:58.754:E/AndroidRuntime(14843):致命异常:main
11-15 12:18:58.754:E/AndroidRuntime(14843):java.lang.NullPointerException
11-15 12:18:58.754:E/AndroidRuntime(14843):位于android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.AbsListView.obtainView(AbsListView.java:2159)
11-15 12:18:58.754:E/AndroidRuntime(14843):位于android.widget.ListView.makeAndAddView(ListView.java:1831)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.ListView.fillDown(ListView.java:674)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.ListView.fillFromTop(ListView.java:735)
11-15 12:18:58.754:E/AndroidRuntime(14843):位于android.widget.ListView.layoutChildren(ListView.java:1652)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.AbsListView.onLayout(AbsListView.java:1994)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.view.layout(view.java:14015)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.support.v4.widget.DrawerLayout.onLayout(DrawerLayout.java:702)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.view.layout(view.java:14015)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.FrameLayout.onLayout(FrameLayout.java:448)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.view.layout(view.java:14015)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.view.layout(view.java:14015)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.widget.FrameLayout.onLayout(FrameLayout.java:448)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.view.layout(view.java:14015)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewGroup.layout(ViewGroup.java:4373)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1892)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1711)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.Choreographer.doCallbacks(Choreographer.java:562)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.Choreographer.doFrame(Choreographer.java:532)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)
11-15 12:18:58.754:E/AndroidRuntime(14843):在android.os.Handler.handleCallback(Han
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d("TAG","MainActivity has started.");
    drawer_enter=(EditText)findViewById(R.id.drawer_enter);
    list=(ListView)findViewById(R.id.left_drawer);
    //image_button=(Button)findViewById(R.id.image_button);
    //image_button.setOnClickListener(button);
    drawer_enter.setOnEditorActionListener(new TextView.OnEditorActionListener() {
        @Override
        public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
            if (actionId == EditorInfo.IME_ACTION_DONE) {

                InputMethodManager imm = (InputMethodManager)getSystemService(
                      Context.INPUT_METHOD_SERVICE);
                imm.hideSoftInputFromWindow(drawer_enter.getWindowToken(), 0);

        Log.d("TAG","In button listener");
        inflateString(drawer_enter.getText().toString());
        MakeFrag();

                return true;
            }
            return false;
        }
    });


    drawer=(DrawerLayout)findViewById(R.id.drawer_layout);
    listen=new ActionBarDrawerToggle(this,drawer,R.drawable.ic_launcher,0,0){
        public void onDrawerOpened(View drawerView) {
             getActionBar().setTitle("History");
         }
        public void onDrawerClosed(View drawerView) {
             getActionBar().setTitle("Best Google Image");
         }
    };
    drawer.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
    drawer.setDrawerListener(listen);
    list.setOnItemClickListener(new DrawerItemClickListener());

}

/*private OnClickListener button=new OnClickListener() {
    @Override
    public void onClick(View theView) {
        InputMethodManager imm = (InputMethodManager)getSystemService(
                  Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(drawer_enter.getWindowToken(), 0);

    Log.d("TAG","In button listener");

    //int num=inflateString(drawer_enter.getText().toString());
    MakeFrag();
    }
};*/

private class DrawerItemClickListener implements ListView.OnItemClickListener{

    @Override
    public void onItemClick(AdapterView<?> arg0, View arg1, int position,
            long arg3) {
        MakeDrawerFrag(position);
        //drawer.closeDrawer(arg0);
    }

}

public void MakeFrag(){
    Log.d("TAG", "Making the fragment now!!");
    Fragment fragment=new ImageFragment();
    Bundle args=new Bundle();
    args.putString(ImageFragment.ARG_IMAGE_SEARCH,drawer_enter.getText().toString());
    fragment.setArguments(args);

    FragmentManager fragmentManager=getFragmentManager();
    Log.d("TAG", "Arguments passed!!");
    fragmentManager.beginTransaction().replace(R.id.frame_layout, fragment).addToBackStack(null).commit();
    Log.d("TAG", "Fragment made!!");

}



private void inflateString(String name)
{
    int i=0;
    for(i=0;i<names.length;i++){
        if(names[i]==null){
            names[i]=name;
            break;
        }
    }
    list.setAdapter(new ArrayAdapter<String>(this,R.layout.list_item,names));
    Log.d("TAG","String has been added!!!");
}
public class ImageFragment extends Fragment{
        public static final String ARG_IMAGE_SEARCH = "image_search";
        public Bitmap done=null;
        private String search="",newSearch="";
        private ImageView photo=null;
        /*public ImageFragment() {
            // Empty constructor required for fragment subclasses
        }*/

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            Log.d("TAG","making the view of the Fragment!!!");
            search=getArguments().getString(ARG_IMAGE_SEARCH);
            int i;

            for(i=0;i<search.length();i++){
                if(search.charAt(i)==' '){
                    newSearch+="%20";
                }
                else{
                    newSearch+=search.charAt(i);

                }
            }
            Log.d("TAG",newSearch);
            new ImageLoader().execute(newSearch);
            View rootView = inflater.inflate(R.layout.image_view, container, false);
            photo=(ImageView) rootView.findViewById(R.id.image_view);
            photo.setImageBitmap(done);
            getActivity().setTitle(getArguments().getString(ARG_IMAGE_SEARCH));
            return rootView;
        }





private class ImageLoader extends AsyncTask<String,Void,Void>{
@Override
protected Void doInBackground(String... args) {
    // TODO Auto-generated method stub
    try{
        Log.d("TAG", "Background thread has started!!");
        URL url=new URL("https://ajax.googleapis.com/ajax/services/search/images?" +
                "v=1.0&q="+args[0]);
        HttpURLConnection connection=(HttpURLConnection) url.openConnection();
        String urlData;
        StringBuilder builder=new StringBuilder();
        BufferedReader reader=new BufferedReader(new InputStreamReader(connection.getInputStream()));
        while((urlData=reader.readLine()) != null){
            builder.append(urlData);
        }
        JSONObject first=new JSONObject(builder.toString());
        int i,larg = 0;
        for(i=0;i<2;i++){
            if((first.getJSONObject("responseData").getJSONArray("results").getJSONObject(i).getInt("width"))>first.getJSONObject("responseData").getJSONArray("results").getJSONObject(i+1).getInt("width")){
                larg=i;
            }
            else larg=i+1;
        }
        String image=first.getJSONObject("responseData").getJSONArray("results").getJSONObject(larg).getString("url");
        URL imgUrl = new URL(image);
        HttpURLConnection imgConnection=(HttpURLConnection)imgUrl.openConnection();
        InputStream input=imgConnection.getInputStream();
        done=BitmapFactory.decodeStream(input);
        Log.d("TAG","Bitmap has been formed!!");

    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (JSONException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } 
    return null;


    }
protected void onPostExecute(Void result){
    photo.setImageBitmap(done);
}
search=getArguments().getString(ARG_IMAGE_SEARCH);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.image_view, container, false);

try {
    search=getArguments().getString(ARG_IMAGE_SEARCH);
    Log.d("onCreateView",search); // this will print out the search string to logcat
    } catch (Exception e) {
    e.printStackTrace();  // or throw an exception and print it to logcat
    }

return rootView;
}
static ImageFragment newInstance(String string){
    ImageFragment fragment = new ImageFragment();

    Bundle args = new Bundle();
            args.putString(ImageFragment.ARG_IMAGE_SEARCH, string);

    fragment.setArguments(args);
    return fragment;
}
Fragment newImageFrag = ImageFragment.newInstance(WHATEVER_STRING_ARGUMENT_YOU_NEED_TO_PASS);
// from here add or replace the fragment as normal
search=getArguments().getString(ARG_IMAGE_SEARCH);