隨著安卓版本的不斷更新,新的api不斷湧出,有時候高版本的api會在低版本crash的。
如果minsdkversion設定過低,在build的時候,就會報錯(call requires api level 17 (current min is 9));
這時候為了編譯可以通過,可以新增@suppresslint("newapi")
或者@targeapi(9)註解。
這樣只是編譯通過,執行時依然會crash的。
正確的做法
為了執行時不報錯, 需要:
判斷執行時版本,在低版本系統不呼叫此方法
同時為了保證功能的完整性,需要提供低版本功能實現
小結:在使用高於minsdkversion
api level的方法需要:
如果用@targeapi($api_level)
可以編譯通過, 那就不使用@suppresslint("newapi")
;
執行時判斷api level; 僅在足夠高,有此方法的api level系統中,才呼叫此方法;
保證功能完整性,保證低api版本通過其他方法提供功能實現。
容易忽略的api小細節,好在,ide開發工具,會自動提醒你的。
在不同版本python下安裝tensorflow
note 這樣在不同的環境下切換安裝看起來很煩,的確煩,但是在conda環境下安裝,省去了安裝scipy,numpy 有些不太好安裝的科學計算庫,剛才我們的tensorflow就是裝在conda3下的python3.5下,那樣我們可以很方便地使用conda的庫 官網上的安裝tensorflow是pi...
truncate在不同版本中的區別
中午和同事討論truncate到底會不會釋放資源,大部分都認為會,但是其實具體情況是和mysql的版本有關。before 5.0.3 truncate是delete rows one by one。between 5.0.3 and 5.0.8 當有外來鍵的時候還是delete rows one b...
怎麼在linux切換不同版本的python
最近因為裝pwndbg遇到了點問題,發現有些python庫匯入不了 查了下才發現pwndbg需要python版本為3.5 可是我做pwn題要用的pwntools是用python2的 所以我就查了一下怎麼在linux下共存不同的python版本 發現了乙個神器pyenv github 用這個工具可以很...