Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用请求添加方法时,Kotlin编译错误与OkHttp_Android_Kotlin_Okhttp - Fatal编程技术网

Android 使用请求添加方法时,Kotlin编译错误与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)

我正在一个项目中使用OkHhttp和改装。我有一个“RestClient”java类,它正在构建OkHttp和改造客户机,当我在类中添加一个带有
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问题。是的,我尝试清理所有内容,并回滚到上一次提交,然后一步一步地确定问题和发生的相同问题。