El valor predeterminado del parámetro en la función kotlin en línea (en línea) informa VerifyError: Bad local variable type error solution

Al usar kotlin para desarrollar un proyecto back-end, encontré un informe de error extraño. Este error también se puede encontrar en Android.

La forma de expresión es que si los parámetros en la función en línea tienen valores predeterminados, se informará una excepción de verificación (tipo de variable local incorrecto). Está bien en tiempo de compilación, y este error aparecerá cuando la clase se cargue en tiempo de ejecución. .

El error general es el siguiente

VerifyError: Bad local variable type

Lo extraño es que el mismo código está bien localmente y en producción, pero este error se informará en el entorno de prueba en línea.
Después de mirar el código Java descompilado, no encontré ningún problema y pasé mucho tiempo tratando de resolverlo. Hay dos formas de resolver este error.

  1. Eliminar en línea y usar funciones ordinarias
  2. Continúe usando en línea, pero elimine el valor predeterminado del parámetro

Cualquiera de los dos métodos anteriores ya no informará un error, pero aún no se encuentra el motivo específico.
Fui a la búsqueda oficial de jetbrains y algunas personas encontraron problemas similares, pero no encontraron la razón específica, solo supuse que podría tener algo que ver con la versión de kotlin.
Enlace de referencia: https://youtrack.jetbrains.com/issue/KT-46105/VerifyError-Bad-local-variable-type-with-inline-function-with-de
Según lo que he encontrado, solo puedo adivinar y ejecutar El entorno está relacionado Después de todo, el mismo código está bien para ejecutarse localmente y en el entorno de producción en línea.

Haga un registro, si también encuentra un problema de este tipo, puede consultar la solución anterior.
Además, si alguien sabe qué causó el problema, hágamelo saber en el área de comentarios, ¡gracias!

Supongo que te gusta

Origin blog.csdn.net/yuzhiqiang_1993/article/details/124952232
Recomendado
Clasificación