1: Unknown host ‘d29vzk4ow07wi7.cloudfront.net’. You may need to adjust the proxy settings in Gradle. 解决:将项目根build.gradle目录下的两个jcenter() 替换为:
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/'}2: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 2 path $ 解决:由于期望的数据类型和实际收到的数据类型不一致。 例如:期望的是:BaseModel
@POST("v1.0/price") Call<BaseModel> getAllPrice(@Body LoginArg login);实际上收到的是String, 报错,改为:
@POST("v1.0/price") Call<String> getAllPrice(@Body LoginArg login);3: 解决Android客户端RSA解密部分乱码的问题: 一串乱码+结果 解决:项目中后段RSA加密,问题在前端Android端在RSA解密的时候,解密的结果前面总是出现一串乱码+结果, 解决办法:在移动端获取解密的Cipher类时要使用Cipher.getInstance(“RSA/ECB/PKCS1Padding”); 在后端使用Cipher.getInstance(“RSA”);来获取.
4: 新版本BottomNavigationView,3个以上的tab, 仅显示图标,文字不显示。 解决:
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_navigation_view); bottomNavigationView.setLabelVisibilityMode(1);5: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapperImpl;
解决: 每一个module下都添加:
dataBinding { enabled = true }6:RSA在Android(前端)和java(后端)两者的差异。 解决:Android端默认的RSA的加解密为:“rsa/ecb/nopadding” Java端默认的RSA的加解密为:“RSA/ECB/PKCS1Padding”。 所以在Android端更改代码:
Cipher.getInstance("RSA/ECB/PKCS1Padding");7: 场景:网络框架使用的是Retrofit,需要对返回的ResponseBody进行解密,而解密的密钥在respond的header中,此时需要兼顾模型数据解析(GSON)。 解决:https://blog.csdn.net/lmq121210/article/details/90599827 未完待续。。。