Android Studio問題雜記

weixin_33850890發表於2016-06-07

本文是自己在用Android Studio的使用過程,所遇到的一些個人覺得比較有價值的問題,特此記錄。
總結幾點感觸:
== 1.正確的理解日誌的內容很重要
== 2.分析問題時要有一個清晰的思路,避免亂撞。

一、Nine-Patch 圖片


問題:匯入xxx.9.png檔案後,使用該檔案時報錯:


2158529-8cd147659684d151.jpg

解決:問題的關鍵出在圖片本身,在AS下雙擊該圖片檔案,對圖片再進行編輯,注意理解四條線的意思

二、UnHandled exception


問題:UnHandled exception:java.io.IOException


2158529-43497949a486d5d7.png

原因:進行try/catch的時候catch的是FileNoFound Exception,不能處理此處的異常
解決:AS快捷鍵 Ctrl+Alt+T

三、IllegalArgumentException:Unable to locate adb within SDK


2158529-3b14b7842281a478.png

問題:Unable to locate adb within SDK
分析:應該是Android SDK Platform-tools 出了問題,開啟SDK Manager 檢視

2158529-6decd89baf085a7f.png

解決方案:應該是沒裝Android SDK Platform-tool...安裝即可

四、建立aidl檔案,生成對應Java檔案


2158529-0e5b083136eb396e.png
  1. 建立aidl檔案後,make project 出現錯誤'F:\Android\android-sdk\build-tools\23.0.1\aidl.exe'' finished with non-zero exit value 1
  2. 在aidl檔案中匯入自定義的類後,import class not found

正確思路:
先在main目錄下新建一個資料夾,命名為aidl,再在該目錄下新建一個包,包名跟AndroidManifest中的package同名,然後在該包下建立aidl檔案,建立完之後,make Project下,在build/generated/source/aidl/debug下就可以見到自動生成的java檔案


2158529-578dbddc7fd6d50f.png

五、Plugin is too old, please update to a more recent version......


2158529-18364a17ed059c44.png

分析:google了一下,問題定位到了下面這個位置 'com.android.to ols.build:gradle:2.1.0-alpha4',根據提示,可能是這個不是最新的Plugin

解決方法:http://stackoverflow.com/questions/29063968/plugin-is-too-old-please-update-to-a-more-recent-version-or-set-android-daily#comment46364169_29064084
將 'com.android.tools.build:gradle:2.1.0-alpha4'
替換成 'classpath 'com.android.tools.build:gradle:+'

六、Attempt to invoke virtual method‘xxxxxxx’ (java.lang.CharSequence)' on a null object reference


問題如圖:


2158529-9ca41357ff969082.png

日誌指向:


2158529-208c441bf7109146.png

錯誤分析:
--- 根據日誌可知,報錯語句是tv_title.setText(tv_content[xx]); 原因是NullPointerException:
--- 那麼,兩種可能:1. tv_title為空 2. tv_content[]為空
經測,陣列tv_content[]不空,則控制元件物件 tv_title空指標
這種情況下也有兩種可能:1.物件用錯了 2.沒有初始化 findViewById (一般後者比較常見,但此處是前者。。)

十、Cause: com/android/build/gradle/AppPlugin : Unsupported major.mi nor version 52.0


2158529-d8fd9b28e223a461.png

解決方法:將專案所用的jdk版本調高 1.7改成1.8


2158529-713e343ce1dcb279.png

十一、JSON解析遇到的問題


2158529-c3d0918ace2f5943.png

如:Excepted BEGIN_OBJECT but was STRING at line1 column1......
正確解讀意思:你以為它一個JSONObject物件,但實際它是String型別的

十二、FATAL EXCEPTION: main Process: com.example.mml.huaerjietest, PID: 9779 android.content.res.Resources$NotFoundException: String resource ID #0x5


2158529-4ce2bf74de5c363b.png

問題原因:此處括號裡返回的是一個int型別的值,setText(int xx)報錯:
日誌原因:setText( )方法有幾個過載的方法,比如
---------- textView.setText(CharSequence text);
---------- textView.setText(int resId);
如果不小心將一個int值傳給了它,那它不會顯示該int值,而是跑到工程下去找一個對應的resource的id,當然是找不到的,於是就報錯.....
來源:http://blog.sina.com.cn/s/blog_5e58565701012ox7.html

相關文章