1. 程式人生 > >Android開發中常見問題及解決方案

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中新增環境變數無效


如果修改了~/.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中有某些變數的銷燬操作,需要新增非空判斷。