OkHttp:无法从静态内容引用非静态方法

OkHttp: Non-static method cannot be referenced from a static content

我正在跟进一个关于此的示例 link 我收到错误:

Non-static method 'newCall(com.squareup.okhttp.Request) cannot be referenced from a static content

这一行Call call = OkHttpClient.newCall(request);

这是代码

public class MainActivity extends Activity {

    public OkHttpClient client = new OkHttpClient();
    String requestUrl = " http://iheartquotes.com/api/v1/random?format=json";
    Request request = new Request.Builder().url(requestUrl).build();
    TextView text1;
    public static final MediaType JSON = 
        MediaType.parse("application/json; charset=utf-8");

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        text1 = (TextView) findViewById(R.id.messageText);
    }

    call = OkHttpClient.newCall(request);

}

这是什么原因?

您已经创建了一个客户端。而不是

call = OkHttpClient.newCall(request);

您的代码应如下所示:

call = client.newCall(request);

您需要创建的客户端引用。

Non-static method 'newCall(com.squareup.okhttp.Request)

该错误意味着您正在尝试调用 class 的方法,这需要对象的实例,例如该方法被标记为静态。在您的情况下,newCallOkHttpClientnot-static 方法,因此它需要访问 OkHttpClient 的实例。