问题描述
我正在使用 eclipse lsp4j library 连接到远程语言服务器。我的应用程序需要支持 API Level 21 系统,并且在较新的 android 版本上不会抛出此异常。 (我在 API 级别 30 上进行了测试)。我对如何修复它有点不知所措。
这是我必须连接到语言服务器的代码:
val launcher = LSPLauncher.createClientLauncher(this,inputStream,outputStream)
这些是我从调试器得到的日志:
I/art: Rejecting re-init on previously-failed class java.lang.Class<org.eclipse.lsp4j.jsonrpc.MessageTracer>
Rejecting re-init on previously-failed class java.lang.Class<org.eclipse.lsp4j.jsonrpc.MessageTracer>
Rejecting re-init on previously-failed class java.lang.Class<org.eclipse.lsp4j.jsonrpc.MessageTracer>
Rejecting re-init on previously-failed class java.lang.Class<org.eclipse.lsp4j.jsonrpc.MessageTracer>
I/art: Rejecting re-init on previously-failed class java.lang.Class<org.eclipse.lsp4j.jsonrpc.services.-$$Lambda$ServiceEndpoints$eKMG28mxVS2rcQINSfNNvWiJqVc>
Rejecting re-init on previously-failed class java.lang.Class<org.eclipse.lsp4j.jsonrpc.services.-$$Lambda$ServiceEndpoints$eKMG28mxVS2rcQINSfNNvWiJqVc>
I/art: Rejecting re-init on previously-failed class java.lang.Class<org.eclipse.lsp4j.jsonrpc.services.-$$Lambda$ServiceEndpoints$eKMG28mxVS2rcQINSfNNvWiJqVc>
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.lsp_client,PID: 6699
java.lang.NoClassDefFoundError: org.eclipse.lsp4j.jsonrpc.services.-$$Lambda$ServiceEndpoints$eKMG28mxVS2rcQINSfNNvWiJqVc
at org.eclipse.lsp4j.jsonrpc.services.ServiceEndpoints.getSupportedMethods(ServiceEndpoints.java:90)
at org.eclipse.lsp4j.jsonrpc.services.ServiceEndpoints.getSupportedMethods(ServiceEndpoints.java:82)
at org.eclipse.lsp4j.jsonrpc.Launcher$Builder.getSupportedMethods(Launcher.java:404)
at org.eclipse.lsp4j.jsonrpc.Launcher$Builder.createJsonHandler(Launcher.java:335)
at org.eclipse.lsp4j.jsonrpc.Launcher$Builder.create(Launcher.java:319)
at org.eclipse.lsp4j.launch.LSPLauncher.createClientLauncher(LSPLauncher.java:106)
at com.example.lsp_client.server.LanguageServerSocket.startSession(LanguageServerSocket.kt:68)
...
我猜 lsp4j 库存在某种兼容性问题,但我不确定从哪里开始调试。我的 Gradle 配置与相关依赖项的上下文:
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'org.jetbrains.kotlin.plugin.serialization'
}
android {
compileSdkVersion 30
defaultConfig {
minSdkVersion 21
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
useIR = true
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion compose_version
kotlinCompilerVersion kotlin_version
}
}
dependencies {
...
implementation 'org.eclipse.lsp4j:org.eclipse.lsp4j:0.10.0'
implementation 'org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.10.0'
...
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)