【问题标题】:Conflict Between "cordova-plugin-firebasex" and "cordova-plugin-advanced-http" Plugins“cordova-plugin-firebasex”和“cordova-plugin-advanced-http”插件之间的冲突
【发布时间】:2021-06-14 18:57:09
【问题描述】:

firebasex 添加到项目后,“cordova-plugin-advanced-http”的 http 客户端正在向 logcat 发送此错误

03-17 11:39:23.777 13563 31774 E AndroidRuntime: Process: com.appname.name, PID: 13563
03-17 11:39:23.777 13563 31774 E AndroidRuntime: java.lang.NoSuchMethodError: No virtual method getHttpUrlChecked(Ljava/lang/String;)Lokhttp3/HttpUrl; in class Lokhttp3/internal/Internal; or its super classes (declaration of 'okhttp3.internal.Internal' appears in /data/app/com.appname.name-o8MIMfLOiDEjA11Lh1r2Sg==/base.apk!classes3.dex)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at okhttp3.internal.huc.OkHttpURLConnection.buildCall(OkHttpURLConnection.java:373)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at okhttp3.internal.huc.OkHttpURLConnection.getOutputStream(OkHttpURLConnection.java:260)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at okhttp3.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:229)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at okhttp3.internal.huc.OkHttpsURLConnection.getOutputStream(OkHttpsURLConnection.java:26)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at com.silkimen.http.HttpRequest.openOutput(HttpRequest.java:2599)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at com.silkimen.http.HttpRequest.send(HttpRequest.java:2904)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at com.silkimen.cordovahttp.CordovaHttpBase.sendBody(CordovaHttpBase.java:161)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at com.silkimen.cordovahttp.CordovaHttpBase.run(CordovaHttpBase.java:81)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
03-17 11:39:23.777 13563 31774 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:919)
03-17 11:39:25.428  4165  4587 E NativeSemDvfsCpuManager: release:: Start
03-17 11:39:25.428  4165  4587 E NativeSemDvfsCpuManager: release():: mIsAcquired = 1 , mName = CPU  , mTagName : AudioFlinger 
03-17 11:39:25.430  4165  4587 E NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::releaseDVFSLock() 
03-17 11:39:25.430  4165  4587 E NativeSemDvfsCpuManager: release:: End
03-17 11:39:25.469  4693  4733 E KernelCpuUidUserSysTimeReader: Negative user/sys time delta for UID=10253
03-17 11:39:25.469  4693  4733 E KernelCpuUidUserSysTimeReader: Prev times: u=6341651000 s=3599142000 Curr times: u=6341102000 s=3598859000

经过一些调试和研究后,我将 okhttp 更改为其他版本,例如 3.4.1 和 3.3.1 以及 3.4.0 和其他版本,但没有任何效果我还尝试使用其他版本的 FirebaseX 类似于 cli 的库,但不起作用

ionic info

Ionic:

   Ionic CLI                     : 6.12.3 (/Users/osama/.nvm/versions/node/v14.15.4/lib/node_modules/@ionic/cli)
   Ionic Framework               : @ionic/angular 5.5.1
   @angular-devkit/build-angular : 0.1001.7
   @angular-devkit/schematics    : 10.2.0
   @angular/cli                  : 10.1.3
   @ionic/angular-toolkit        : 2.3.3

Cordova:

   Cordova CLI       : 10.0.0
   Cordova Platforms : android 9.0.0
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 5.0.0, (and 13 other plugins)

Utility:

   cordova-res (update available: 0.15.3) : 0.15.2
   native-run                             : 1.3.0

System:

   Android SDK Tools : 26.1.1 (/Users/osama/Library/Android/sdk)
   ios-sim           : 8.0.2
   NodeJS            : v14.15.4 (/Users/osama/.nvm/versions/node/v14.15.4/bin/node)
   npm               : 6.14.10
   OS                : macOS Big Sur
   Xcode             : Xcode 12.4 Build version 12D4e

问题可能出在哪里?

【问题讨论】:

    标签: java cordova ionic-framework okhttp


    【解决方案1】:

    您不能混合使用不同版本的 OkHttp,因此您应该检查您使用的是单一一致的版本。尝试将所有依赖项升级到 4.9.1 并查看是否修复。

    还有一种 BOM 机制可以在 maven 和 Gradle 等构建系统中强制执行此操作 https://github.com/square/okhttp#releases

        dependencies {
           // define a BOM and its version
           implementation(platform("com.squareup.okhttp3:okhttp-bom:4.9.1"))
           
           // define any required OkHttp artifacts without version
           implementation("com.squareup.okhttp3:okhttp")
           implementation("com.squareup.okhttp3:logging-interceptor")
        }
    

    【讨论】:

    • 我尝试了com.squareup.okhttp3:okhttp-urlconnection:4.9.1,但构建失败
    • 好的,很抱歉听到这个消息。这应该是修复。我希望你能解决任何阻止它构建的问题。
    • 非常感谢,但是如果我们知道“firebasex”插件中使用的OKHTTP版本,我们可以设置“http”插件来使用它,你能给我一个提示吗?
    【解决方案2】:

    package.json使用这个版本的OKHTTP

    "cordova-plugin-advanced-http": {
        "OKHTTP_VERSION": "3.12.1"
      }
    

    【讨论】:

      猜你喜欢
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多