java如何识别Android崩溃的原因?

u5i3ibmn  于 2021-09-13  发布在  Java
关注(0)|答案(0)|浏览(289)

下面是android应用程序firebase崩溃堆栈跟踪,我无法确定崩溃的原因。这可能是一个愚蠢的问题,但这个崩溃计数是尖峰,我需要一个修复。这==null的确切含义是什么?
致命异常:java.lang.nullpointerexception:this==null位于com.pure.indosat.care.fragments.buy.buypackagesfragment.lambda$parsepackagescategories$1(buypackagesfragment.java:175)位于com.pure.indosat.care.fragments.buy.buy.BuyPackagesFragments.lambda$parsepackagescategories$1$buypackagesfragment(buypackagesfragment.java:11)com.pure.indosat.care.fragments.buy.-$$lambda$buypackagesfragment$ccyvvivqjqdnzlemw30nw6ekmqa.run(-.java:11)在android.os.handler.handle.handlecallback(handler.java:883)在android.os.looper.loop(looper.java:237)在android.app.activitythread.main(activitythread.java:7948)在java.lang.reflect.method.invoke(method.java)位于com.android.internal.os.runtimeinit$methodandargscaller.run(runtimeinit.java:493)位于com.android.internal.os.zygoteinit.main(zygoteinit.java:1075)
在测试buypackagesfragment java类时,我没有遇到任何崩溃。以下代码是根据crash第175行的代码
私有void parsepackagescategories(jsonobject jsonobject){

  1. Handler handler = new Handler();
  2. handler.post(() -> {
  3. Iterator<String> keys = jsonObject.keys();
  4. tabs.clear();
  5. while (keys.hasNext()) {
  6. String key = keys.next();
  7. if (jsonObject.opt(key) instanceof JSONObject) {
  8. JSONObject jsonObject1 = (JSONObject) jsonObject.opt(key);
  9. if (jsonObject1 != null) {
  10. String title = jsonObject1.optString("title");
  11. JSONArray jsonArray = jsonObject1.optJSONArray("categories");
  12. TabInfo item = new TabInfo();
  13. **Line No: 175 : JSONArray categoriesArray = mActivity.getJSONArray(jsonObject1, "categories");**
  14. try {
  15. String id = categoriesArray.length() > 0
  16. ? categoriesArray.getJSONObject(0).optString("category_id")
  17. : "";
  18. item.setId(id);
  19. } catch (JSONException e) {
  20. TraceUtils.logException(e);
  21. }
  22. item.setTitle(title);
  23. item.setData(jsonArray);
  24. item.setOrder(jsonObject1.optInt("order"));
  25. tabs.add(item);
  26. }
  27. }
  28. }
  29. Collections.sort(tabs, (z1, z2) -> {
  30. if (z1.getOrder() > z2.getOrder())
  31. return 1;
  32. else if (z1.getOrder() < z2.getOrder())
  33. return -1;
  34. return 0;
  35. });
  36. parseTabsData();
  37. });
  38. }

在这里,我认为“mactivity”可能是空的,但如果是这样的话,那么崩溃应该在代码开始时发生。
如果有人能告诉我this==null的确切含义,那么它将非常有用。
非常感谢。

  1. public JSONArray getJSONArray(JSONObject jsonObject, String key) {
  2. JSONArray jsonArray = new JSONArray();
  3. if (jsonObject == null || TextUtils.isEmpty(key)) return jsonArray;
  4. try {
  5. if (jsonObject.opt(key) instanceof JSONObject) {
  6. jsonArray.put(jsonObject.optJSONObject(key));
  7. return jsonArray;
  8. }
  9. if (jsonObject.opt(key) instanceof JSONArray) {
  10. jsonArray = jsonObject.optJSONArray(key);
  11. return jsonArray;
  12. }
  13. } catch (Exception e) {
  14. TraceUtils.logException(e);
  15. }
  16. return jsonArray;
  17. }

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题