Android项目环境搭建问题记录

    xiaoxiao2022-07-04  146

    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 未完待续。。。

    最新回复(0)