Android 使用请求添加方法时,Kotlin编译错误与OkHttp
我正在一个项目中使用OkHhttp和改装。我有一个“RestClient”java类,它正在构建OkHttp和改造客户机,当我在类中添加一个带有Android 使用请求添加方法时,Kotlin编译错误与OkHttp,android,kotlin,okhttp,Android,Kotlin,Okhttp,我正在一个项目中使用OkHhttp和改装。我有一个“RestClient”java类,它正在构建OkHttp和改造客户机,当我在类中添加一个带有Request 编译以下代码时没有问题: private OkHttpClient createOkHttpClient() { OkHttpClient.Builder builder = new OkHttpClient.Builder().connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)
Request
编译以下代码时没有问题:
private OkHttpClient createOkHttpClient() {
OkHttpClient.Builder builder = new OkHttpClient.Builder().connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)
.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)
.readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)
.addNetworkInterceptor(chain -> {
int flags = Base64.NO_WRAP | Base64.URL_SAFE;
String header = calculateHeader()
Request request = chain.request().newBuilder().addHeader("Authorization", header).build();
return chain.proceed(request);
});
return builder.build();
}
但是,如果我添加了一个基于请求计算报头的方法,它将失败
private OkHttpClient createOkHttpClient() {
OkHttpClient.Builder builder = new OkHttpClient.Builder().connectTimeout(CONNECT_TIMEOUT, TimeUnit.SECONDS)
.writeTimeout(WRITE_TIMEOUT, TimeUnit.SECONDS)
.readTimeout(READ_TIMEOUT, TimeUnit.SECONDS)
.addNetworkInterceptor(chain -> {
int flags = Base64.NO_WRAP | Base64.URL_SAFE;
String header = calculateHeader(chain.request())
Request request = chain.request().newBuilder().addHeader("Authorization", header).build();
return chain.proceed(request);
});
return builder.build();
}
private String calculateHeader(Request request) {/** ... */ }
然后,Kotlin编译器出现以下错误:
错误:无法访问okhttp3的请求类文件。找不到请求。有关详细信息,请参阅以下堆栈跟踪
不幸的是,没有堆栈跟踪。
我试图禁用Proguard和R8,但没有成功,同样的错误仍然存在,使此消息消失的唯一方法是从方法中删除请求
参数
我缺少什么?您是否尝试从命令行编译?比如/gradlew clean assembleDebug
。排除可能的AndroidStudio问题。是的,我尝试清理所有内容,并回滚到上一次提交,然后一步一步地确定问题,同样的问题也发生了。您是否尝试从命令行编译?比如/gradlew clean assembleDebug
。排除可能的AndroidStudio问题。是的,我尝试清理所有内容,并回滚到上一次提交,然后一步一步地确定问题和发生的相同问题。