Java Android:NullPointerException:println需要一条消息;

Java Android:NullPointerException:println需要一条消息;,java,android,json,android-asynctask,Java,Android,Json,Android Asynctask,我正在尝试使用片段构建一个具有主布局和详细布局的应用程序,数据来自使用Asynctask使用webservice解析JSOnArray 无论我在不同论坛上针对类似问题应用了什么修复建议,我总是从logcat中看到这个错误: FATAL EXCEPTION: main Process: com.example.masterdetail, PID: 26639 java.lang.NullPointerException: println needs a message

我正在尝试使用片段构建一个具有主布局和详细布局的应用程序,数据来自使用Asynctask使用webservice解析JSOnArray

无论我在不同论坛上针对类似问题应用了什么修复建议,我总是从logcat中看到这个错误:

FATAL EXCEPTION: main
    Process: com.example.masterdetail, PID: 26639
    java.lang.NullPointerException: println needs a message
            at android.util.Log.println_native(Native Method)
            at android.util.Log.d(Log.java:139)
            at com.example.masterdetail.ItemsListFragment.populateResult(ItemsListFragment.java:108) //this is the line where I am building an arraylist in ItemsListFragment.java
            at com.example.masterdetail.AsyncRequest.onPostExecute(AsyncRequest.java:147)
            at com.example.masterdetail.AsyncRequest.onPostExecute(AsyncRequest.java:23)
            at android.os.AsyncTask.finish(AsyncTask.java:632)
            at android.os.AsyncTask.access$600(AsyncTask.java:177)
            at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:645)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5001)
            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:785)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
            at dalvik.system.NativeStart.main(Native Method)
================== ItemsListFragment.java:

public void populateResult(String response) {
        /*TextView resultView = (TextView)getActivity().findViewById(R.id.textUrlContent);
        resultView.setText(response);*/
        try {
            ListView lvItems = (ListView) getActivity().findViewById(R.id.lvItems);
            ArrayList<Item> products = new ArrayList<Item>();
            JSONObject jsonObject = new JSONObject(response);
            JSONObject responseObj = jsonObject.getJSONObject("response");
            JSONArray jsonDataProducts = responseObj.getJSONArray("products");

            for (int i = 0; i < jsonDataProducts.length(); i++) {
                JSONObject oneObject = jsonDataProducts.getJSONObject(i);
                Item dataProduct = new Item();
                dataProduct.setTitle(oneObject.getString("title"));
                dataProduct.setBody(oneObject.getString("id"));
                products.add(dataProduct); //***Line: 108 from above error msg ************
            }

            adapterItems = new ArrayAdapter<Item>(getActivity(),
                    android.R.layout.simple_list_item_activated_1, products);
            lvItems.setAdapter(adapterItems);
            lvItems.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> adapterView, View item, int position,
                                        long rowId) {
                    // Retrieve item based on position
                    Item i = adapterItems.getItem(position);
                    // Fire selected event for item
                    listener.onItemSelected(i);
                }
            });
        } catch (Exception e) {
           Log.d("ReadRdaJSONFeedTask", e.getLocalizedMessage());
        }
    }
public void populateResult(字符串响应){
/*TextView resultView=(TextView)getActivity().findViewById(R.id.TextureContent);
resultView.setText(响应)*/
试一试{
ListView lvItems=(ListView)getActivity().findViewById(R.id.lvItems);
ArrayList产品=新的ArrayList();
JSONObject JSONObject=新JSONObject(响应);
JSONObject responseObj=JSONObject.getJSONObject(“响应”);
JSONArray jsonDataProducts=responseObj.getJSONArray(“产品”);
对于(int i=0;i
e.getlocalizedMessage()
返回null。打电话前先检查一下

Log.d("ReadRdaJSONFeedTask", e.getLocalizedMessage() == null ? "" : e.getLocalizedMessage());
e.getlocalizedMessage()
返回null。打电话前先检查一下

Log.d("ReadRdaJSONFeedTask", e.getLocalizedMessage() == null ? "" : e.getLocalizedMessage());

谢谢你的回答。我试过了,但还是不走运。这个问题很烦人:(为什么不用e.printStackTrace()代替e.getLocalizedMessage()呢?谢谢!我正在查看日志猫中的旧消息。我试图通过右键单击它来清除所有消息,但看起来它从未清除它,总是加载旧消息。因此,我刚刚重新启动android studio,并尝试了您在回答中提到的一条消息。它起作用了!谢谢您的回答。我尝试了,但仍然没有成功。这个问题一直困扰着我ing:(为什么不用e.printStackTrace()代替e.getLocalizedMessage())?谢谢!我正在查看日志猫中的旧消息。我试图通过右键单击它来清除所有消息,但看起来它从未清除它,总是加载旧消息。因此,我刚刚重新启动了android studio,并尝试了您在回答中提到的一条消息,它工作了!