Android開發中常見問題及解決方案
阿新 • • 發佈:2019-01-05
1、介面對接中的關鍵字解析
在日常介面對接中,經常會出現介面返回的資料節點是java中的關鍵字(類似介面返回 extends 節點),會導致解析異常。
針對這種情況有以下的解決方案:
1、fastjson 解析的情況下可以使用以下註解
如:
2、使用gson解析的處理
可做如下設定
a) 開啟 as 設定
b) 搜尋 File Encodings
c) 勾選右下角的 transparent native....
如果修改了~/.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後面)
可以手動規避這一現象的出現。
[注意]
如果啟動頁的onDestroy中有某些變數的銷燬操作,需要新增非空判斷。
在日常介面對接中,經常會出現介面返回的資料節點是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中有某些變數的銷燬操作,需要新增非空判斷。