转载https://blog.csdn.net/qq_37893505/article/details/89878653大佬写的很好。buildscript{repositories{//jcenter()//google()maven{url'https://maven.aliyun.com/repository/jcenter'}maven{url'https://maven.aliyun.com/repository/google'}}...}allprojects{repositories{//jcenter()//google()maven{url'https://maven.aliyun.com/repository/jcenter'}maven{url'https://maven.aliyun.com/repository/google'}}}
androidstudio的androidX版本:因为androidstudio新版本的项目目录下的build.gradle文件中没有allprojects,所以在项目目录下的settings.gradle文件中增加dependencyResolutionManagement{repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories{//加上下面这两行,解决导入鸿洋okhttputils不识别的问题jcenter()maven{url'https://jitpack.io'}}}转载自:https://blog.csdn.net/MoonAndroid/article/details/127101817
因为onResponse和onFailure都是回调函数需要在等待post请求发送并收到回执之后内部类中才会有数据,所有外部使用回执之后的数据必须使用观察者模式,否则在拿到回执之前数据就会是空值,程序执行到这必然产生崩溃。错误代码示例:call.enqueue(newCallback<EditResult>(){@OverridepublicvoidonResponse(Call<EditResult>call,Response<EditResult>response){Log.d("asdasdasd",response.toString());editResult[0]=response.body();}@OverridepublicvoidonFailure(Call<EditResult>call,Throwablet){}});editResult[0]=response.body();这一句就是错误的语句,应当改为观察者模式
之前写的一个demo没有这个问题,所以一直没注意。后来开发中,发送请求,server连点反应都不给,实在没办法搜了一下这个问题。就是android9.0(28)以后,系统默认不在支持http请求,当我们在发送http请求时会出现以下提示,并且请求网络失败。解决方法:在XML目录下新建创建network_security_config.xml文件:<?xmlversion="1.0"encoding="utf-8"?><network-security-config><base-configcleartextTrafficPermitted="true"/></network-security-config>在AndroidManifest.xml里面进行引用:android:networkSecurityConfig="@xml/network_security_config"