com.sun.jdi.internalException:Unexpected JDWP Error:103////Method threw 'java.lang.IllegalArgumentEx


retrofit2+RxJava2 的一些坑

今天開發新項目,本着積極向上的學習態度,經過多番考慮我決定使用retrofit2 + RxJava2來做為我的網絡請求......神說:你的想法非常好

  • 先看一下我的 依賴配置
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.squareup.retrofit2:converter-gson:2.1.0'
    compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
    compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
    compile 'io.reactivex.rxjava2:rxjava:2.0.7'
    compile 'io.reactivex.rxjava2:rxandroid:2.0.1'

首先我們先來看幾個錯誤,如果有符合你項目錯誤的地方可以繼續看 因為我都已經調試好了沒辦法截圖我就把錯誤復制進來好了

  • 第一個錯誤
com.sun.jdi.internalException:Unexpected JDWP Error:103
  • 第二個錯誤
Unable to create call adapter for io.reactivex
  • 第三個錯誤
Method threw 'java.lang.IllegalArgumentException' exception.
  • 第四個錯誤
java.net.UnknownHostException: Unable to resolve host "h5www.kaixinwan.com": No address associated with hostname
  • 今天集成的網絡框架 就報錯了這個四個主要的錯誤下面我根據我解決的問題進行解釋

  • 一二三錯誤是因為一個問題造成的 先看一下在哪里造成錯誤的原因....在第二行造成的
  baseApi = retrofit.create(BaseApi.class);
  >>>>>Observable findObservable = baseApi.getFind(scy_type);<<<<<
  • 當時這個問題我找了好多博客都是英文的(WTF)根本看不懂,最后想辦法自己解決吧,總不能寫一半放棄,這也不是我性格,看了好多文章說明,最后發現因為如果用retrofit2的時候 是堅決堅決不能使用RxJava1的必須使用RxJava2

  • 如果出現上述一二三問題應該在你的依賴中加入

舊的:compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
新的:compile 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
  • 看好了這個是 rxjava2 : 2 . 2 . 0 我當時看了半天感覺也一樣啊 它的后綴是rxjava2 :X.X.X
    同時 記住是同時把以前的注釋掉 一定要注釋掉(我就忘記注釋掉了 導致還是報錯 豬腦袋!!!)

這里寫圖片描述

compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0-beta4' 網上說加這個依賴
大家不用試了 不好使!!!!!

  • 最后一步在retrofit中更改配置 添加RxJava2CallAdapterFactory.create()
 retrofit = new Retrofit.Builder()
                    .baseUrl(BaseUrl)
                    .client(build)
                    .addConverterFactory(FastJsonConverterFactory.create())
                    .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                    .build();
  • 至此應該能解決了.

  • 第四個錯誤 后台給了我一個網址 我在網頁中可以打開 在cmd中也可以ping通 但是用着個框架怎么調試都是報第四個錯誤,框架告訴你找不到主機地址(找不到就對了),因為這個地址只能在虛擬機中進行調試,而且還得配置虛擬機的host---把這個地址加進去,,記住加進去之后要加一個回車要不不生效(具體怎么配置 自行百度)



如果幫你解決了 給個喜歡唄




免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM