繁体   English   中英

Android 应用程序在同时使用这两个时崩溃 - OkHttpStack AND firebase firestore 依赖项

[英]Android app crashes when using these two together - OkHttpStack AND firebase firestore dependency

Android app crashes when i run these two things together - OkHttpStack as base stack for new request queue in volley and firebase firestore dependency in gradle ( 'com.google.firebase:firebase-firestore:17.0.5' )

给我这个错误,也许 firebase firestore 依赖项已经包含 okhttp 依赖项,这就是为什么会出现或不会出现这种情况,但如果是这种情况,该怎么办或如何排除它? 否则我没有得到错误是什么,请提出解决方案。

依赖项 -

implementation 'com.squareup.okhttp3:okhttp:3.10.0'
implementation 'com.squareup.okhttp:okhttp-urlconnection:2.4.0'
implementation 'com.google.firebase:firebase-firestore:17.0.5'

FATAL EXCEPTION: Thread-21

    java.lang.NoSuchMethodError: No direct method <init>(Lcom/squareup/okhttp/OkHttpClient;Lcom/squareup/okhttp/Request;ZZZLcom/squareup/okhttp/Connection;Lcom/squareup/okhttp/internal/http/RouteSelector;Lcom/squareup/okhttp/internal/http/RetryableSink;Lcom/squareup/okhttp/Response;)V in class Lcom/squareup/okhttp/internal/http/HttpEngine; or its super classes (declaration of 'com.squareup.okhttp.internal.http.HttpEngine' appears in /data/app/packagename-vaVP5bn4ajPlEZQZDBqyVg==/split_lib_dependencies_apk.apk:classes2.dex)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.newHttpEngine(HttpURLConnectionImpl.java:362)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.initHttpEngine(HttpURLConnectionImpl.java:312)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:377)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:497)
        at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
        at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)
        at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:96)
        at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:123)
        at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:131)
        at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
        at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)


UncaughtException: java.lang.NoSuchMethodError: No direct method <init>(Lcom/squareup/okhttp/OkHttpClient;Lcom/squareup/okhttp/Request;ZZZLcom/squareup/okhttp/Connection;Lcom/squareup/okhttp/internal/http/RouteSelector;Lcom/squareup/okhttp/internal/http/RetryableSink;Lcom/squareup/okhttp/Response;)V in class Lcom/squareup/okhttp/internal/http/HttpEngine; or its super classes (declaration of 'com.squareup.okhttp.internal.http.HttpEngine' appears in /data/app/packageName-vaVP5bn4ajPlEZQZDBqyVg==/split_lib_dependencies_apk.apk:classes2.dex)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.newHttpEngine(HttpURLConnectionImpl.java:362)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.initHttpEngine(HttpURLConnectionImpl.java:312)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:377)
        at com.squareup.okhttp.internal.huc.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:497)
        at com.squareup.okhttp.internal.huc.DelegatingHttpsURLConnection.getResponseCode(DelegatingHttpsURLConnection.java:105)
        at com.squareup.okhttp.internal.huc.HttpsURLConnectionImpl.getResponseCode(HttpsURLConnectionImpl.java:25)
        at com.android.volley.toolbox.HurlStack.executeRequest(HurlStack.java:96)
        at com.android.volley.toolbox.BasicNetwork.performRequest(BasicNetwork.java:123)
        at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:131)
        at com.android.volley.NetworkDispatcher.processRequest(NetworkDispatcher.java:111)
        at com.android.volley.NetworkDispatcher.run(NetworkDispatcher.java:90)

Firestore 依赖于旧的 okhttp:2.7.2,而不是 okhttp3。 它甚至是另一个 package,而不仅仅是版本。 因此,您不能仅将其从 firestore 依赖项中排除。 我在这里看到的唯一方法-您应该切换到旧版本的 okhttp,直到 firestore 更新其依赖项。

这里有一个临时修复

configurations.all {
resolutionStrategy {
    force 'com.squareup.okhttp:okhttp:2.7.5'
    force 'com.squareup.okio:okio:1.17.5'
}

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM