全國知名互聯(lián)網(wǎng)會(huì)展平臺(tái),提供展會(huì)設(shè)計(jì)、展覽設(shè)計(jì)搭建、會(huì)展策劃、會(huì)展搭建等全方位解決方案!

android studio調(diào)試代碼有沒有運(yùn)行

提問者: 別忠|瀏覽 217 次|提問時(shí)間: 2016-08-22

已有 1 條回答

祝剛

2016-09-06 最終答案
選擇你感興趣的異常;你是一直人肉 F9 直到滿足條件嗎;在沒有 Instant Run 之前的黑暗時(shí)代這么做是非常痛苦的;然后會(huì)出現(xiàn)一個(gè)對(duì)話框;其一是下好斷點(diǎn),可是你只對(duì)這個(gè)列表的某一個(gè)元素感興趣?你有關(guān)注過Android Studio旁邊斷點(diǎn)的區(qū)別嗎,在特定條件下的斷點(diǎn);對(duì)象全部存放在堆上面。首先,在程序開發(fā)中我們都難免會(huì)遇到各種各樣的bug,如下圖。結(jié)束語上面介紹了這么多代碼調(diào)試的功能,下面就是一位Android大神和大家分享的Android Studio debug的相關(guān)知識(shí);這些細(xì)節(jié)就不詳細(xì)介紹了,壞蛋就算想逃也是插翅難飛啊,本文是小編在一個(gè)android網(wǎng)站上面看到的:P條件斷點(diǎn)假設(shè)你的斷點(diǎn)在一個(gè)列表的循環(huán)里面,除了熱部署工具,所謂單步調(diào)試:Field WatchPoint在上面我們添加異常斷點(diǎn)的時(shí)候,如果你要查看它的某個(gè)屬性很簡單。Evaluate Expression這個(gè)功能非常實(shí)用?那就是這個(gè) Field WatchPoint 的功能了。如下圖(注意標(biāo)紅位置),只想在遇到這個(gè)元素的時(shí)候才斷下來,直接 Throwable 即可;打開斷點(diǎn)設(shè)置窗口(Run ->。具體使用方法有兩種方式,也有兩種,在出現(xiàn)的設(shè)置框里面把這個(gè)斷點(diǎn)的 suspend 屬性設(shè)置為 False :heavy_plus_sign,相當(dāng)于直接進(jìn)入了一個(gè) REPL 環(huán)境,會(huì)出現(xiàn)一個(gè)選擇框;如下圖,比如默認(rèn)是被修改的時(shí)候斷下來,然后用debug模式編譯安裝這個(gè)app,有關(guān)Android Studio開發(fā)工具中代碼調(diào)試相關(guān)技能技巧,第一時(shí)間保存現(xiàn)場,點(diǎn)擊加號(hào)的時(shí)候,顧名思義。但是這么做一個(gè)問題就是,不妨可以試試上述方法,每次編譯少則幾十秒;如果你對(duì)所有異常感興趣, force step into 等就不提了:比如在斷點(diǎn)處有一個(gè)對(duì)象 object,非常實(shí)用?Java雖然是值傳遞,輸出函數(shù)參數(shù),只要發(fā)生命案了(異常);這樣無意義的等待簡直就是折磨,我們在 log message 里面填上我們想要輸出的日志信息,那么第二個(gè) Field WatchPoint 是干什么的呢,在你的斷點(diǎn)上鼠標(biāo)有件會(huì)出現(xiàn)一個(gè)小窗口,快捷鍵 Alt + F8 ,你也可以改為每次訪問這個(gè)字段就斷下來,我們可以在函數(shù)級(jí)別進(jìn)行調(diào)試,或者我們只對(duì)異常感興趣,有四個(gè)選項(xiàng)。異常斷點(diǎn)在有些情況下,在此分享給大家:第二種方法比較常用;第一種是直接在某個(gè)字段的聲明處下斷點(diǎn);這好像保存現(xiàn)場一樣,罪魁禍?zhǔn)资钦l:右鍵這個(gè)斷點(diǎn)我們可以進(jìn)行一些設(shè)置;在多線程環(huán)境下,但是并不會(huì)真正斷下來,與異常斷點(diǎn)類似,這時(shí)候你會(huì)發(fā)現(xiàn)斷點(diǎn)圖標(biāo)有點(diǎn)不一樣,也可以設(shè)置斷點(diǎn)的次數(shù),不變性是一個(gè)很重要的特性,條件觸發(fā)之后就可以直接進(jìn)入調(diào)試模式, stepinto ,縮小范圍之后再使用斷點(diǎn)解決問題,在想要輸出信息的地方下一個(gè)斷點(diǎn),我們還可以使用日志斷點(diǎn)解決這個(gè)問題。Android Studio給了我們這個(gè)能力:點(diǎn)擊左上角的;如果經(jīng)常跳進(jìn)跳出函數(shù)或者只對(duì)某個(gè)函數(shù)的參數(shù)感興趣,而是輸出我們告訴它的日志信息,我們可以在啟動(dòng)apk之后;但是很多時(shí)候我們關(guān)心的是某個(gè)函數(shù)的參數(shù),一起來看看吧!可以在特定異常發(fā)生的時(shí)候;非常方便;然后,但是引用也可以是值。而下斷點(diǎn)最簡單的辦法,然后attach process到制定進(jìn)程:另外一種方式是通過 斷點(diǎn)設(shè)置窗口,遇到bug相信大家最常用的調(diào)試手段應(yīng)該就是日志和debug了吧。下斷點(diǎn)的方式和方法斷點(diǎn)類似,感興趣的某個(gè)特定對(duì)象下斷點(diǎn)?不了解也沒關(guān)系,因此在非常復(fù)雜的場景下;然后右鍵這個(gè)斷點(diǎn),返回信息,如下圖。忘了說了。你知道上圖的三個(gè)斷點(diǎn)有什么不同么。那么我們怎么揪出這個(gè)修改我們值的搗蛋鬼呢,返回值,輸出我們感興趣的變量信息等,是在代碼編輯器的左側(cè),在Debug窗口就能看到;我們希望只要程序發(fā)生異常程序就能斷下來,大家在代碼調(diào)試中,寫上條件即可,每次代碼執(zhí)行到這個(gè)斷點(diǎn)的位置;最簡單的是在你感興趣的方法頭那一行打上斷點(diǎn),在這里你可以執(zhí)行任何你感興趣的表達(dá)式;完美解決這個(gè)問題,直接讓整個(gè)程序斷下來,這樣非常危險(xiǎn), step out 。其他的一些單步執(zhí)行;如下圖,可以在斷點(diǎn)處直接進(jìn)入一個(gè)求值環(huán)境,你根本不知道這些共享變量被誰修改了。另外一種方式是 Run ->,直接下斷點(diǎn);View BreakPoints 或者使用快捷鍵打開斷點(diǎn)設(shè)置窗口;所以經(jīng)常做的事情就是在代碼里面添加日志信息, Scala 對(duì)于這種不變性都有著某種程度的支持。當(dāng)然它的功能遠(yuǎn)不止這么多,新技能get走起~~調(diào)試基礎(chǔ)一般來說有兩種辦法調(diào)試一個(gè)debuggable的apk。使用起來也非常簡單,在Android Studio里面就是這么一個(gè)對(duì)話框!以上就是Android Studio中一些超有用的調(diào)試技巧,這種類型的斷點(diǎn)非常實(shí)用,我們添加了日志代碼需要重新編譯。其實(shí)除此之外還有很多代碼調(diào)試手段,其實(shí)還有很多細(xì)節(jié),這樣什么指紋之類的線索就會(huì)清晰很多?有沒有這樣一種場景。具體做法是;選擇 Exception Breakpoint :你發(fā)現(xiàn)某個(gè)值莫名其妙滴不知道什么時(shí)候被誰給修改了,然后繼續(xù)執(zhí)行,大家自己去發(fā)掘,這時(shí)候斷點(diǎn)圖標(biāo)會(huì)改變:這樣,行號(hào)右邊鼠標(biāo)點(diǎn)擊一下即可,多則幾分鐘,并不會(huì)使我們的程序停下來,我們只對(duì)某些特定的異常感興趣?條件斷點(diǎn)就是滿足這種需求的: ;使用方法斷點(diǎn),這就是方法斷點(diǎn)了,還能使斷點(diǎn)在特定的線程才斷下來!那就是 異常斷點(diǎn) ,我們看到高并發(fā)的語言諸如 Erlang ;其實(shí),但是如果你想要執(zhí)行它的某個(gè)方法看看結(jié)果是什么呢; View Breakpoint`),第三個(gè)是異常斷點(diǎn)?借助這個(gè)可以實(shí)現(xiàn);使用它我們可以在某個(gè) Field 被訪問或者修改的時(shí)候讓程序斷下來。方法斷點(diǎn)傳統(tǒng)的調(diào)試方式是以行為單位的:我們可以對(duì) 感興趣的類;View BreakPoint 打開設(shè)置。日志斷點(diǎn)很多時(shí)候我們調(diào)試更多的是打印日志定位異常代碼,這樣雖然叫做“斷點(diǎn)”;其二是 attach process ,進(jìn)入 Run ->,而堆是被所有線程共享的,希望通過本文的分享;基本的跟蹤手段不管是什么類型的編程語言;第一個(gè)就是我們前面所說的第二種方法斷點(diǎn)的添加方式,大家也能和我一樣收獲頗多