我的应用程序一启动就会崩溃

时间:2016-05-18 13:13:37

标签: android json android-recyclerview

首先登录活动一旦用户成功登录他应该进入此活动但是一旦成功登录应用程序崩溃,在我的主页上我通过解析json显示recyclerview。

我的代码:

public class events_home extends Fragment {

    public String get_events="";
    public RequestQueue requestQueue;
    public StringRequest stringRequest;
    public String college_name;
    public RecyclerView recyclerView;
    public LinearLayoutManager llm;
    public List<events> events;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.events_home,container,false);
        recyclerView = (RecyclerView) v.findViewById(R.id.neostat_home_recycleview);


        SharedPreferences sha1 = getActivity().getSharedPreferences("user_data", Context.MODE_PRIVATE);
        college_name = sha1.getString("college_name",null);
        llm = new LinearLayoutManager(getContext());
        recyclerView.setLayoutManager(llm);
        System.out.print(college_name);
        requestQueue = Volley.newRequestQueue(getContext());
        stringRequest = new StringRequest(Request.Method.POST, get_events, new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {

                try {
                    JSONArray jsonArray = new JSONArray(response);

                    for (int i=0;i<jsonArray.length();i++)
                    {
                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        events = new ArrayList<>();
                        events.add(new events(jsonObject.getString("title"),jsonObject.getString("image")));

                    }

                    events_adapter eventsAdapter = new events_adapter(events);
        recyclerView.setAdapter(eventsAdapter);

                } catch (JSONException e) {
                    e.printStackTrace();
                }


            }
        }, new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {

            }
        })
        {
            @Override
            protected Map<String, String> getParams() throws AuthFailureError {
                HashMap<String,String> hashMap = new HashMap<String,String>();
                hashMap.put("college_name","");
                return hashMap;
            }
        };





requestQueue.add(stringRequest);

        return v;
    }
}

我的新日志:

 05-18 19:1

7:09.564 19049-19119/com.ph.com.neostat I/OpenGLRenderer: Initialized EGL, version 1.4
05-18 19:17:09.652 19049-19119/com.ph.com.neostat W/EGL_emulation: eglSurfaceAttrib not implemented
05-18 19:17:09.653 19049-19119/com.ph.com.neostat W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xaa768c20, error=EGL_SUCCESS
05-18 19:17:09.956 19049-19059/com.ph.com.neostat I/art: Background sticky concurrent mark sweep GC freed 1812(244KB) AllocSpace objects, 0(0B) LOS objects, 24% free, 1298KB/1717KB, paused 5.285ms total 78.007ms
05-18 19:17:09.996 19049-19049/com.ph.com.neostat I/Choreographer: Skipped 30 frames!  The application may be doing too much work on its main thread.
05-18 19:17:10.213 1668-1695/system_process I/ActivityManager: Displayed com.ph.com.neostat/.Login_Virgin: +2s3ms
05-18 19:17:12.845 1966-1966/com.android.inputmethod.latin I/LatinIME: Starting input. Cursor position = 0,0
05-18 19:17:12.928 19049-19119/com.ph.com.neostat W/EGL_emulation: eglSurfaceAttrib not implemented
05-18 19:17:12.928 19049-19119/com.ph.com.neostat W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xaec13fe0, error=EGL_SUCCESS
05-18 19:17:13.200 1966-2852/com.android.inputmethod.latin W/EGL_emulation: eglSurfaceAttrib not implemented
05-18 19:17:13.200 1966-2852/com.android.inputmethod.latin W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xad954040, error=EGL_SUCCESS
05-18 19:17:13.869 19049-19119/com.ph.com.neostat E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb2ef5aa0
05-18 19:17:21.843 1966-1966/com.android.inputmethod.latin I/LatinIME: Starting input. Cursor position = 8,8
05-18 19:17:21.899 19049-19119/com.ph.com.neostat W/EGL_emulation: eglSurfaceAttrib not implemented
05-18 19:17:21.899 19049-19119/com.ph.com.neostat W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xa2bfbc20, error=EGL_SUCCESS
05-18 19:17:22.216 19049-19119/com.ph.com.neostat E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb2ef5a30
05-18 19:17:29.101 1668-11719/system_process I/ActivityManager: START u0 {cmp=com.ph.com.neostat/.app_homepage} from uid 10057 on display 0
05-18 19:17:29.402 19049-19049/com.ph.com.neostat W/FragmentManager: moveToState: Fragment state for classified_home{9b49ebc #0 id=0x7f0c006a android:switcher:2131492970:1} not updated inline; expected state 3 found 2
05-18 19:17:29.636 19049-19119/com.ph.com.neostat W/EGL_emulation: eglSurfaceAttrib not implemented
05-18 19:17:29.636 19049-19119/com.ph.com.neostat W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xad959120, error=EGL_SUCCESS
05-18 19:17:29.842 19049-19049/com.ph.com.neostat E/RecyclerView: No adapter attached; skipping layout
05-18 19:17:29.886 1668-1695/system_process I/ActivityManager: Displayed com.ph.com.neostat/.app_homepage: +769ms
05-18 19:17:29.942 19049-19049/com.ph.com.neostat E/RecyclerView: No adapter attached; skipping layout
05-18 19:17:30.153 1966-2852/com.android.inputmethod.latin E/Surface: getSlotFromBufferLocked: unknown buffer: 0xab269e80
05-18 19:17:30.198 19049-19119/com.ph.com.neostat E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb2ef5950
05-18 19:17:30.299 19049-19049/com.ph.com.neostat E/RecyclerView: No adapter attached; skipping layout
05-18 19:17:37.945 19049-19049/com.ph.com.neostat W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=523.4546, y[0]=990.46875, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=1771922, downTime=1761851, deviceId=0, source=0x1002 }
05-18 19:17:37.959 19049-19049/com.ph.com.neostat W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=523.4546, y[0]=990.46875, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=1771922, downTime=1761851, deviceId=0, source=0x1002 }
05-18 19:17:37.959 19049-19049/com.ph.com.neostat W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=523.4546, y[0]=990.46875, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=1771922, downTime=1761851, deviceId=0, source=0x1002 }
05-18 19:17:37.959 19049-19049/com.ph.com.neostat W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_CANCEL, actionButton=0, id[0]=0, x[0]=523.4546, y[0]=990.46875, toolType[0]=TOOL_TYPE_FINGER, buttonState=0, metaState=0, flags=0x0, edgeFlags=0x0, pointerCount=1, historySize=0, eventTime=1771922, downTime=1761851, deviceId=0, source=0x1002 }
05-18 19:18:06.027 1668-1690/system_process E/BluetoothAdapter: Bluetooth binder is null
05-18 19:18:06.028 1668-1690/system_process E/KernelCpuSpeedReader: Failed to read cpu-freq
                                                                    java.io.FileNotFoundException: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state: open failed: ENOENT (No such file or directory)
                                                                        at libcore.io.IoBridge.open(IoBridge.java:452)
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                                        at java.io.FileReader.<init>(FileReader.java:66)
                                                                        at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49)
                                                                        at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002)
                                                                        at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
                                                                        at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                        at android.os.Looper.loop(Looper.java:148)
                                                                        at android.os.HandlerThread.run(HandlerThread.java:61)
                                                                        at com.android.server.ServiceThread.run(ServiceThread.java:46)
                                                                     Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
                                                                        at libcore.io.Posix.open(Native Method)
                                                                        at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
                                                                        at libcore.io.IoBridge.open(IoBridge.java:438)
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:76) 
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:103) 
                                                                        at java.io.FileReader.<init>(FileReader.java:66) 
                                                                        at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49) 
                                                                        at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002) 
                                                                        at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366) 
                                                                        at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125) 
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                        at android.os.Looper.loop(Looper.java:148) 
                                                                        at android.os.HandlerThread.run(HandlerThread.java:61) 
                                                                        at com.android.server.ServiceThread.run(ServiceThread.java:46) 
05-18 19:18:06.029 1668-1690/system_process E/KernelUidCpuTimeReader: Failed to read uid_cputime
                                                                      java.io.FileNotFoundException: /proc/uid_cputime/show_uid_stat: open failed: ENOENT (No such file or directory)
                                                                          at libcore.io.IoBridge.open(IoBridge.java:452)
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                                          at java.io.FileReader.<init>(FileReader.java:66)
                                                                          at com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71)
                                                                          at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8031)
                                                                          at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
                                                                          at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                          at android.os.Looper.loop(Looper.java:148)
                                                                          at android.os.HandlerThread.run(HandlerThread.java:61)
                                                                          at com.android.server.ServiceThread.run(ServiceThread.java:46)
                                                                       Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
                                                                          at libcore.io.Posix.open(Native Method)
                                                                          at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
                                                                          at libcore.io.IoBridge.open(IoBridge.java:438)
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:76) 
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:103) 
                                                                          at java.io.FileReader.<init>(FileReader.java:66) 
                                                                          at com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71) 
                                                                          at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8031) 
                                                                          at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366) 
                                                                          at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125) 
                                                                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                          at android.os.Looper.loop(Looper.java:148) 
                                                                          at android.os.HandlerThread.run(HandlerThread.java:61) 
                                                                          at com.android.server.ServiceThread.run(ServiceThread.java:46) 
05-18 19:18:06.030 1668-1690/system_process E/KernelWakelockReader: neither /proc/wakelocks nor /d/wakeup_sources exists
05-18 19:18:06.039 1668-1690/system_process W/BatteryStatsImpl: Couldn't get kernel wake lock stats

1 个答案:

答案 0 :(得分:0)

它显示您正在访问循环视图的空列表,并且根据您的代码,可以清楚地看到您已将适配器方法放在响应之外,因此它是空的并且无法填充适配器。

请尝试在代码中进行以下更改。

首先剪切代码

下面的行
     events_adapter eventsAdapter = new events_adapter(events);
     recyclerView.setAdapter(eventsAdapter);

现在,将其粘贴到响应方法中,如下所示。

      @Override
        public void onResponse(String response) {

            try {
                JSONArray jsonArray = new JSONArray(response);

                for (int i=0;i<jsonArray.length();i++)
                {
                    JSONObject jsonObject = jsonArray.getJSONObject(i);
                    events = new ArrayList<>();
                    events.add(new events(jsonObject.getString("title"),jsonObject.getString("image")));

                }

                 events_adapter eventsAdapter = new events_adapter(events);
                 recyclerView.setAdapter(eventsAdapter);

            } catch (JSONException e) {
                e.printStackTrace();
            }


        }

这可以帮助您解决问题。

相关问题