標籤:android style color io ar java for strong sp
最近部落格寫的少了,以後還得經常更新才行。
------------------------------------------------------------
1.try cath 異常不全導致的意外問題。
之所以將此問題放在第一位,是因為前陣子中項目中出現了此類情況,並且這種情況很容易不注意或遺忘,但其錯誤卻是致命的。
在Java/Android開發中,當調用一個函數時,此函數拋出一個A類型的異常,很自然的,在調用的地方我們會try.. catch此異常,並且絕大多數情況下,捕獲異常是由Eclispe自動提示並產生的,函數拋出A異常,則調用的地方catch A,實際上,我們最好必須在catch A後再加上一個catch(Exception ex){}。原因在於防範於某些不可確定發生的問題而導致可能拋出的其他異常類型。
上次就遇到了在new JSONObject()時,很自然的只catch了JSONException,而沒有進一步的catch Exception,而實際上由於參數格式錯誤後導致其拋出了java.lang.NumberFormatException,一步步跟蹤代碼後發現在原始碼中確實存在可能拋出此異常的情形,而沒被catch到,直接將導致app崩潰。此後謹記!
2.Eclipse項目中的Android Private Libraries沒有自動產生。
一般而言,在Android開發中,項目中引用到的jar包會放到項目目錄中的libs中,引入庫會放到Android Dependencies中,對於放置於libs中的jar包,會自動置於項目中的Android Private Libraries下,如果沒有自動產生,clean項目後一般在console下會發現有相應的錯誤提示,修正即可。如:項目中引用了不同的v4相容包等會出現此類情況。
3.Eclipse中一直出現“Android SDK: resolving error markers”。
此類情況網上有諸多描述以及相應嘗試性的解決方案,不久前本人即出現此類情況,嘗試多種方案後未能解決。最終方法如下:
刪除此檔案,workspace/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi,重啟Eclipse即可。
4.因so檔案目錄引起的UnsatisfiedLinkError: … :findLibrary returned null問題。
Android開發中,不可避免的可能會引用到外部so檔案,設定一個項目中可能需要引用多個不同的外部so檔案。因為不同的引入庫中so檔案的目錄可能不同,導致打包後產生的項目lib目錄中的目錄結構是不同的外部so檔案目錄的合集。可能會出現armabi/armeabi-v7a/x86/mips等,一般情況下,armabi應該是有的,當此三個目錄下的檔案可能不同時,在某些特定機型下很可能會出現如上錯誤。原因在於不同的機型CPU結構不同導致搜尋不同的目錄下面的包,而由於外部庫不同的so檔案目錄可能armabi下還有a、b so檔案,而x86下可能只含有a,此時解決方案如下:
直接刪除x86和mips目錄,只保持armabi目錄即可,當不存在x86目錄時,相應機型也自然會取armabi目錄下搜尋相應so檔案。
5.Can‘t create handler inside thread that has not called Looper.prepare。
這個問題其實也比較經典了,原因在於,Android中的非UI線程不能進行修改UI操作(當然,嚴格意義上來說SurfaceView和TextureView除外),一般常見於在子線程中執行了如 Toast.makeText 等操作。一般藉助於子線程和主線程訊息通訊機制來解決。
常見解決方案如:
1).Handler - Message方式;
2).activity.runOnUiThread(runnable)方式等。
Android開發中的問題及相應解決(持續更新)