本文是自己在用Android Studio的使用過(guò)程蔑鹦,所遇到的一些個(gè)人覺(jué)得比較有價(jià)值的問(wèn)題歼狼,特此記錄裤翩。
總結(jié)幾點(diǎn)感觸:
== 1.正確的理解日志的內(nèi)容很重要
== 2.分析問(wèn)題時(shí)要有一個(gè)清晰的思路拳亿,避免亂撞晴股。
一、Nine-Patch 圖片
問(wèn)題:導(dǎo)入xxx.9.png文件后肺魁,使用該文件時(shí)報(bào)錯(cuò):
解決:?jiǎn)栴}的關(guān)鍵出在圖片本身电湘,在AS下雙擊該圖片文件,對(duì)圖片再進(jìn)行編輯鹅经,注意理解四條線的意思
二寂呛、UnHandled exception
問(wèn)題:UnHandled exception:java.io.IOException
原因:進(jìn)行try/catch的時(shí)候catch的是FileNoFound Exception,不能處理此處的異常
解決:AS快捷鍵 Ctrl+Alt+T
三瘾晃、IllegalArgumentException:Unable to locate adb within SDK
問(wèn)題:Unable to locate adb within SDK
分析:應(yīng)該是Android SDK Platform-tools 出了問(wèn)題贷痪,打開(kāi)SDK Manager 查看
解決方案:應(yīng)該是沒(méi)裝Android SDK Platform-tool...安裝即可
四、建立aidl文件蹦误,生成對(duì)應(yīng)Java文件
- 創(chuàng)建aidl文件后劫拢,make project 出現(xiàn)錯(cuò)誤'F:\Android\android-sdk\build-tools\23.0.1\aidl.exe'' finished with non-zero exit value 1
- 在aidl文件中導(dǎo)入自定義的類(lèi)后,import class not found
正確思路:
先在main目錄下新建一個(gè)文件夾强胰,命名為aidl舱沧,再在該目錄下新建一個(gè)包,包名跟AndroidManifest中的package同名偶洋,然后在該包下創(chuàng)建aidl文件狗唉,創(chuàng)建完之后,make Project下涡真,在build/generated/source/aidl/debug下就可以見(jiàn)到自動(dòng)生成的java文件
五分俯、Plugin is too old, please update to a more recent version......
分析:google了一下,問(wèn)題定位到了下面這個(gè)位置 'com.android.to ols.build:gradle:2.1.0-alpha4'哆料,根據(jù)提示缸剪,可能是這個(gè)不是最新的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
問(wèn)題如圖:
日志指向:
錯(cuò)誤分析:
--- 根據(jù)日志可知东亦,報(bào)錯(cuò)語(yǔ)句是tv_title.setText(tv_content[xx]); 原因是NullPointerException:
--- 那么杏节,兩種可能:1. tv_title為空 2. tv_content[]為空
經(jīng)測(cè),數(shù)組tv_content[]不空典阵,則控件對(duì)象 tv_title空指針
這種情況下也有兩種可能:1.對(duì)象用錯(cuò)了 2.沒(méi)有初始化 findViewById (一般后者比較常見(jiàn)奋渔,但此處是前者。壮啊。)
十嫉鲸、Cause: com/android/build/gradle/AppPlugin : Unsupported major.mi nor version 52.0
解決方法:將項(xiàng)目所用的jdk版本調(diào)高 1.7改成1.8
十一、JSON解析遇到的問(wèn)題
如:Excepted BEGIN_OBJECT but was STRING at line1 column1......
正確解讀意思:你以為它一個(gè)JSONObject對(duì)象歹啼,但實(shí)際它是String類(lèi)型的
十二玄渗、FATAL EXCEPTION: main Process: com.example.mml.huaerjietest, PID: 9779 android.content.res.Resources$NotFoundException: String resource ID #0x5
問(wèn)題原因:此處括號(hào)里返回的是一個(gè)int類(lèi)型的值座菠,setText(int xx)報(bào)錯(cuò):
日志原因:setText( )方法有幾個(gè)重載的方法,比如
---------- textView.setText(CharSequence text);
---------- textView.setText(int resId);
如果不小心將一個(gè)int值傳給了它藤树,那它不會(huì)顯示該int值浴滴,而是跑到工程下去找一個(gè)對(duì)應(yīng)的resource的id,當(dāng)然是找不到的,于是就報(bào)錯(cuò).....
來(lái)源:http://blog.sina.com.cn/s/blog_5e58565701012ox7.html