• 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---把这个地址加进去,,记住加进去之后要加一个回车要不不生效(具体怎么配置 自行百度)



    如果帮你解决了 给个喜欢呗



  • 相关阅读:
    EasyNVR视频平台无法输出RTSP流地址排查步骤
    EasyNVR平台实现播流地址超时无法播放功能过程分享
    EasyNVR视频平台集成出现播放一段时间后自动断开的情况排查及优化
    EasyNVR-ARM版云终端频繁死机重启原因分析
    EasyNVR用户登录修改为IP+用户名限制的修改过程分享
    EasyNVR视频平台设备通道页面显示错误的调整方法
    【解决方案】视频智能监控系统为酒店智能化建设提供一体化融合解决方案
    1051 Pop Sequence (25 分)
    1089 Insert or Merge (25 分)
    1085 Perfect Sequence (25 分)
  • 原文地址:https://www.cnblogs.com/guanhaoran/p/7248663.html
Copyright © 2020-2023  润新知