首页 > 解决方案 > 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"

有人可以帮我吗

标签: androidkotlingradlealgolia

解决方案


推荐阅读