Android开发中常见问题及解决方案

1、接口对接中的关键字解析


 在日常接口对接中,经常会出现接口返回的数据节点是java中的关键字(类似接口返回 extends 节点),会导致解析异常。
针对这种情况有以下的解决方案:

1、fastjson 解析的情况下可以使用以下注解
如:
public class DataBean implements Serializable {
	@JSONField(name = "extends")
	private String extendsData;
	...
}

2、使用gson解析的处理
public class DataBean implements Serializable {
	@SerializedName(name = "extends")
	private String extendsData;
	...
}


2、android studio打包后app名称出现乱码或在gradle.properties中,中文被转Unicode码的解决方法


可做如下设置
a) 打开 as 设置
b)   搜索 File Encodings
c)   勾选右下角的 transparent native....



3.mac中添加环境变量无效

mac中添加环境变量无效


如果修改了~/.bash_profile文件发现无效,因为安装zsh,~/.bash_profile就不会被执行,解决办法如下:
1.打开vim ~/.zshrc  将你要配置到环境变量配置到该文件中即可
2.打开vim ~/.zshrc  添加source ~/.bash_profile ,这样~/.bash_profile配置的环境变量同样有效


4.Library引入jar,jar中assets无法被打包进aar

使用时需要注意:将jar包的assets文件拷贝出来放在library的assets文件夹中。

5.git使用过程中,误删本地以及远程分支,恢复操作(文件都已提交情况下)


点击打开链接


首先通过git log -g(--walk-reflogs)来找到你的提交记录。这个是从最近的记录开始,并不只是当前分支的log。
使用git branch 需要恢复的分支名 commitId 这样便可以恢复到删除前的分支


 6.app安装后直接打开,按HOME切到后台,然后点击桌面图标再次打开app,这时app会重新进入启动页,而不会直接显示切后台前的页面。

点击打开链接

在启动页的onCreate中加入如下代码:(放在super后面)

if(!this.isTaskRoot()) {
       Intent mainIntent = getIntent();
       String action = mainIntent.getAction();
       if (mainIntent.hasCategory(Intent.CATEGORY_LAUNCHER)
              && action.equals(Intent.ACTION_MAIN)) {
           finish();
           return;
       }
}

可以手动规避这一现象的出现。


[注意]
如果启动页的onDestroy中有某些变量的销毁操作,需要添加非空判断。

你可能感兴趣的:(Android开发中常见问题及解决方案)