public static String getAccessToken() {
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://m.baidu.com")
.build();
String result = null;
try {
Response response = client.newCall(request).execute();
result = response.body().string();
} catch (IOException e) {
e.printStackTrace();
result = e.toString();
}
return result;
}
上面是一段简单的OkHttp同步请求。需要把请求结果返回回去,结果直接蹦了。
看来是线程问题,我加个线程进去后直接报错,线程不能result值回去
你这是空指针哦 在你的Common类里面350行看下你用到的Resources
1.okHttp 同步请求需要放在线程中,否则编译不通过,网络请求需要在子线程中的发起
2.异常问题是空指针导致的,logger 日志已经明确告知了
在HomeFragment中 initView()调用Common.xxx方法,第350 的 xx.getResource() 这里的xx对象为null
线程是不能直接return,但是可以用回调把结果发送到主线程
当然多线程更新UI可能涉及到Handler