e:java.lang.IllegalStateException:后端内部错误:文件外观代码生成期间发生异常(Kotlin)

e:java.lang.IllegalStateException:后端内部错误:文件外观代码生成期间发生异常(Kotlin),java,android,kotlin,kotlin-coroutines,Java,Android,Kotlin,Kotlin Coroutines,在我的android应用程序中,我使用SuspendCorroutine将volley(android的HTTP库)回调封装在Kotlin Corroutine中 这是我的功能 private suspend fun requestManger( url: String, method: Int, body: JSONObject?) = suspendCoroutine<Int> { continuation -> val queue = V

在我的android应用程序中,我使用SuspendCorroutine将volley(android的HTTP库)回调封装在Kotlin Corroutine中

这是我的功能

private suspend fun requestManger(
    url: String,
    method: Int,
    body: JSONObject?) = suspendCoroutine<Int> { continuation ->

    val queue = Volley.newRequestQueue(applicationContext)
    val request = object : JsonObjectRequest(method, url, body,
        Response.Listener { response ->
          Log.d(TAG, "doWork: $response")
          continuation.resume(1)
        },
        Response.ErrorListener { error ->
          Log.e(TAG, "doWork: error is", error)
          continuation.resume(0)
        }) {
            override fun getHeaders(): MutableMap<String, String> {
               val params = HashMap<String, String>()
                   params["Content-Type"] = "application/json"
                   params["Authorization"] = "$idToken"

                   return params
                }
             }

                queue.add(request)
        }
private-suspend-fun-requestManger(
url:String,
方法:Int,
body:JSONObject?=suspendCoroutine{continuation->
val queue=Volley.newRequestQueue(applicationContext)
val request=object:JsonObjectRequest(方法、url、正文、,
Response.Listener{Response->
Log.d(标记“doWork:$response”)
续.简历(1)
},
Response.ErrorListener{error->
Log.e(标记“doWork:error is”,error)
继续。继续(0)
}) {
重写fun getHeaders():MutableMap{
val params=HashMap()
参数[“内容类型”]=“应用程序/json”
参数[“授权”]=“$idToken”
返回参数
}
}
queue.add(请求)
}
但是当我尝试构建它时,它给了我这个错误

e:java.lang.IllegalStateException:后端内部错误:文件外观代码生成期间发生异常

值得注意的是,仅当我在响应中使用continuation对象时,才会出现此错误。ErrorListener(即使我键入continuation而未调用任何方法,例如:resume、resumeWithException等,也会出现此错误)
如果我不使用它,错误就会消失,但我不想在出现错误时永远挂起我的函数

我知道现在回答这个问题已经太迟了,我也没有很好的答案,但我刚刚通过截击,创建了一个从JsonObjectRequest继承的匿名对象,得到了这个确切的错误,甚至像您那样覆盖getHeaders

但在我的例子中,我根本没有使用延续。我也不完全确定是什么修复了它,尽管我最终“修复”的问题是,我创建了两个继承自JsonObjectRequest的对象,但第二个对象是在Response.Listener回调中创建的

在代码中,它看起来有点像这样:

val request = object : JsonObjectRequest(method, url, body,
    Response.Listener { response ->
        ...
        val nestedRequest = object : JsonObjectRequest(method2, url2, body2,
            Response.Listener { response ->
                ...
            },
            errorListener) {
            override fun getHeaders(): MutableMap<String, String> {
                ...
                return params
            }
        }
        queue.add(nestedRequest)
    },
    errorListener) {
    override fun getHeaders(): MutableMap<String, String> {
        ...
        return params
    }
}
queue.add(request)
fun doWork(response: JsonObject) {
    ...
    val nestedRequest = object : JsonObjectRequest(method2, url2, body2,
    Response.Listener { response ->
        ...
    },
    errorListener) {
        override fun getHeaders(): MutableMap<String, String> {
            ...
            return params
        }
    }
    queue.add(nestedRequest)
}
val request = object : JsonObjectRequest(method, url, body,
    Response.Listener { response ->
        doWork(response)
    },
    errorListener) {
    override fun getHeaders(): MutableMap<String, String> {
        ...
        return params
    }
}
queue.add(request)
val-request=object:JsonObjectRequest(方法、url、正文、,
Response.Listener{Response->
...
val nestedRequest=object:JsonObjectRequest(method2、url2、body2、,
Response.Listener{Response->
...
},
错误侦听器){
重写fun getHeaders():MutableMap{
...
返回参数
}
}
queue.add(nestedRequest)
},
错误侦听器){
重写fun getHeaders():MutableMap{
...
返回参数
}
}
queue.add(请求)
最终起作用的修复方法只是将嵌套对象创建移出,并在另一个函数中执行该工作

大概是这样的:

val request = object : JsonObjectRequest(method, url, body,
    Response.Listener { response ->
        ...
        val nestedRequest = object : JsonObjectRequest(method2, url2, body2,
            Response.Listener { response ->
                ...
            },
            errorListener) {
            override fun getHeaders(): MutableMap<String, String> {
                ...
                return params
            }
        }
        queue.add(nestedRequest)
    },
    errorListener) {
    override fun getHeaders(): MutableMap<String, String> {
        ...
        return params
    }
}
queue.add(request)
fun doWork(response: JsonObject) {
    ...
    val nestedRequest = object : JsonObjectRequest(method2, url2, body2,
    Response.Listener { response ->
        ...
    },
    errorListener) {
        override fun getHeaders(): MutableMap<String, String> {
            ...
            return params
        }
    }
    queue.add(nestedRequest)
}
val request = object : JsonObjectRequest(method, url, body,
    Response.Listener { response ->
        doWork(response)
    },
    errorListener) {
    override fun getHeaders(): MutableMap<String, String> {
        ...
        return params
    }
}
queue.add(request)
fundowork(响应:JsonObject){
...
val nestedRequest=object:JsonObjectRequest(method2、url2、body2、,
Response.Listener{Response->
...
},
错误侦听器){
重写fun getHeaders():MutableMap{
...
返回参数
}
}
queue.add(nestedRequest)
}
val request=object:JsonObjectRequest(方法、url、正文、,
Response.Listener{Response->
道具(回应)
},
错误侦听器){
重写fun getHeaders():MutableMap{
...
返回参数
}
}
queue.add(请求)