android - algolia kotlin 客户端无法在 android 中运行
问题描述
我正在尝试将 algolia 的 kotlin 客户端用于我的 android 应用程序,但无法解决以下错误。
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.zuess.zuess_android, PID: 6617
java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/message/BasicLineFormatter; in class Lorg/apache/http/message/BasicLineFormatter; or its superclasses (declaration of 'org.apache.http.message.BasicLineFormatter' appears in /system/framework/org.apache.http.legacy.jar)
at org.apache.http.impl.nio.codecs.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:53)
at org.apache.http.impl.nio.codecs.DefaultHttpRequestWriterFactory.<init>(DefaultHttpRequestWriterFactory.java:57)
at org.apache.http.impl.nio.codecs.DefaultHttpRequestWriterFactory.<clinit>(DefaultHttpRequestWriterFactory.java:47)
at org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionFactory.<init>(ManagedNHttpClientConnectionFactory.java:75)
at org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionFactory.<init>(ManagedNHttpClientConnectionFactory.java:83)
at org.apache.http.impl.nio.conn.ManagedNHttpClientConnectionFactory.<clinit>(ManagedNHttpClientConnectionFactory.java:64)
at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalConnectionFactory.<init>(PoolingNHttpClientConnectionManager.java:608)
at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.<init>(PoolingNHttpClientConnectionManager.java:192)
at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.<init>(PoolingNHttpClientConnectionManager.java:176)
at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.<init>(PoolingNHttpClientConnectionManager.java:156)
at org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.<init>(PoolingNHttpClientConnectionManager.java:121)
at org.apache.http.impl.nio.client.HttpAsyncClientBuilder.build(HttpAsyncClientBuilder.java:674)
at io.ktor.client.engine.apache.ApacheEngine.prepareClient(ApacheEngine.kt:76)
at io.ktor.client.engine.apache.ApacheEngine.<init>(ApacheEngine.kt:31)
at io.ktor.client.engine.apache.Apache.create(Apache.kt:19)
at io.ktor.client.HttpClientKt.HttpClient(HttpClient.kt:42)
at io.ktor.client.HttpClientJvmKt.HttpClient(HttpClientJvm.kt:21)
at com.algolia.search.configuration.internal.extension.HttpClientKt.getHttpClient(HttpClient.kt:26)
at com.algolia.search.configuration.internal.ConfigurationSearchImpl.<init>(ConfigurationSearchImpl.kt:31)
at com.algolia.search.configuration.ConfigurationSearchKt.ConfigurationSearch(ConfigurationSearch.kt:47)
at com.algolia.search.configuration.ConfigurationSearchKt.ConfigurationSearch$default(ConfigurationSearch.kt:36)
at com.algolia.search.client.ClientSearchKt.ClientSearch(ClientSearch.kt:178)
at com.algolia.search.client.ClientSearchKt.ClientSearch$default(ClientSearch.kt:172)
at services.search.search(search.kt:26)
at fragments.searchUi.onCreate(searchUi.kt:25)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2949)
at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:475)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:278)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2106)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
触发以下代码时会发生这种情况。
fun search(query : String){
val client = ClientSearch(ApplicationID(appID), APIKey(searchID))
}
我的 build.gradle 包含这两个依赖项
def ktor_version = "1.6.4"
implementation "com.algolia:algoliasearch-client-kotlin:1.10.0"
implementation "io.ktor:ktor-client-apache:$ktor_version"
有人可以帮我吗
解决方案
推荐阅读
- linker - 链接时如何在MinGW中将DLL合并到EXE中
- cinnamon - 为什么这个自定义 nemo 操作没有出现在上下文菜单中?
- java - 无法使用 HashMap 替换方法:调用需要 api 级别 24(当前最小值为 22):java.util.HashMap#replace
- django - 使用 pysaml2 Python 模块解密 SAML2 响应
- visual-studio-code - VSCode 终端智能感知
- java - PostGIS 与 JHipster 的集成
- javascript - 将数组显示为除第一项外的气味
- dart - 无法更改 TextField 边框颜色
- jquery - 如何使用 Jquery 在滚动时触发 CSS @keyframe 动画?
- java - 有没有办法通过注释来预定义数组参数的长度