问题描述
- 使用json包中的函数,提示source not found
-
开发安卓项目的时候,使用json包中的函数,例如JSONObject jsonObject = JSONObject.fromObject(result),就会报错。debug时显示source not found。logcat中的报错:json相关的6个jar都已经加入build path。在其它的项目中都是好用的。为什么安卓里不行?
本人第一次开发安卓,纯小白,望大神指教,谢谢!
贴一下代码:
安卓客户端的:public boolean login(String phoneNumber, String pass) { String path=ServerConfiguration.basicUrl + "/UserServlet"; //将用户名和密码放入HashMap中 Map<String,String> params=new HashMap<String,String>(); params.put("phoneNumber", phoneNumber); params.put("passWord", pass); String result = ""; try { result = this.sendGETRequest(path,params,"UTF-8"); } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } if(result != ""){ JSONArray jsonArray = null; try{ JSONObject jsonObject = JSONObject.fromObject(result); jsonObject.toJSONArray(jsonArray); }catch(Exception e){ e.printStackTrace(); } System.out.println(result); List<User> output = null; output = JSONArray.toList(jsonArray,User.class); UserData.user = output.get(0); ServerConfiguration.sessionId = UserData.user.getSessionId(); return true; } return false; }
这个函数在点击登录按钮时被调用。
提交get请求后,可以正确返回json格式的result。
debug到这句话:JSONObject jsonObject = JSONObject.fromObject(result); 的时候报错:对应的服务器端的servlet:
public class UserServlet extends HttpServlet { private static final long serialVersionUID = 1L; public UserServlet() { super(); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //规定编码 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); String phoneNumber = request.getParameter("phoneNumber"); String passWord = request.getParameter("passWord"); UserService userService = new UserService(); User user = userService.selectUserByPhoneNumber(phoneNumber); if(user.getPassword().equals(passWord)){ HttpSession session = request.getSession(); user.setSessionId(session.getId()); session.setAttribute("user", user); SessionData.addSession(session); JSONArray jsonArray = JSONArray.fromObject(user); response.getWriter().println(jsonArray.toString()); } } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response); } }
解决方案
could not execute method of the activity
在当前活动中不能执行该方法, 你这个方法是耗时操作吗? 还是仅仅就是数据的的封装?
不知道你项目中的具体逻辑,
解决方案二:
你把这部分相关的代码,拿出来粘贴让大家看看,错误显示不能执行这个方法。
时间: 2025-01-14 16:03:24