問題是這樣的峻厚,通過USB連接電腦安裝會出現(xiàn)如下錯誤提示谆焊,好像只是提示會卸載應(yīng)用重裝(一般出現(xiàn)簽名文件沖突的時候會有這個提示)辖试,但問題沒有那么簡單,這個提示會反復(fù)出現(xiàn)剃执,當真機上的應(yīng)用已經(jīng)完全卸載(殺掉進程,重啟手機)這個錯誤提示依然每次出現(xiàn)摹恰。
錯誤分析
- 緩存的問題(通過clean project 及rebuild project重啟Android studio怒见,問題依舊出現(xiàn))
- 手機自身的問題(其他的程序可以正常安裝,就我當前開發(fā)的應(yīng)用不行闺阱,換了幾個同事的測試機依舊不行)(基本排除手機的問題)
- 數(shù)據(jù)線的問題(通過更換數(shù)據(jù)線舵变,使用wifi連接手機,問題依舊出現(xiàn))(排除數(shù)據(jù)線的問題)
- Android Studio內(nèi)部出了問題(當通過直接安裝的方式不行赊豌,我通過拷貝到手機SD卡進行安裝绵咱,出現(xiàn)了安裝包解析的提示,通過QQ傳到手機也提示安裝文件不存在或者失效艾恼,如下圖
于是分析是否是Studio 打包的問題麸锉,我喜歡更新到最新的studio 版本花沉,出現(xiàn)一些bug也屬于正常狀況纳寂,于是通過更換Studio的版本泻拦,問題還是依舊存在)(基本排除Studio的問題)
- 工程的問題(通過新建工程忽媒,可以運行,再將代碼復(fù)制到新的工程架曹,錯誤提示依舊如期而至)
- 電腦系統(tǒng)有問題(代碼拷貝到其他同事電腦運行闹瞧,等了好久……,喔喔奥邮,還是出現(xiàn)了那該死的問題)
這個問題難道無解了嗎洽腺?所有能排除的都排除了,真的無解了嗎蘸朋?難道是代碼的問題藕坯,這不可能啊,都能通過編譯炼彪,打包,就是安裝包不能安裝佑惠,像這種疑難雜癥按照我之前的經(jīng)驗大都是屬于低級錯誤齐疙,靜下心做下其他的事情,再排查一下赌厅,或許能柳暗花明吧轿塔。
兩個小時過去……(中間做其他的事情仲墨,偶爾回頭想想這個問題)
柳暗花明
在做百度鷹眼功能的時候揍障,默認是一個進程,當程序退出時候會殺死主進程
但這樣不行啊癌蚁,提供的Demo只有一個頁面兜畸,殺死了程序也就退出了咬摇,當我集成到我的應(yīng)用,總不能退出那個界面就退出程序吧肛鹏,于是乎我在AndroidManifest 添加了一行代碼,為這個Activity新開一個進程昭雌,如下
錯誤就在這了烛卧,track前面少了一個":"導(dǎo)致安裝包解析錯誤(SD卡安裝)妓局,不斷的提示卸載當前應(yīng)用(USB或者無線Wifi安裝)
問題完美解決。
總結(jié)
- 這個問題嚴格來說也是編譯器不提示這個錯誤導(dǎo)致的局雄,通過人工很難檢查到這樣細微的錯誤(從幾萬行代碼存炮,上千個文件中找一個分號的錯誤,解決實屬偶然)宫盔,希望studio完善這個問題享完。
- 另一方面,也是個人的疏忽吧般又,寫代碼的時候仔細點巍佑,應(yīng)該就能盡量避免這樣的錯誤的發(fā)生幾率萤衰。
- 個人的一點建議吧猜旬,許多程序員都容易鉆進這樣的坑,過于自信自己的代碼昔馋,過于相信編譯器秘遏,過于相信后臺不會出空指針嘉竟,過于相信UI設(shè)計這樣做一定有他的合理性,一個低級的錯誤可能會造成大量時間的浪費舍扰,很多時候边苹,我覺得可以采取我的做法陵且,做做別的,換個方向思考問題个束,解決問題的同時也不會耽誤太多其他的工作時間慕购。
不知道大家相不相信靈感這東西,反正我是信的
寫在最后
歡迎大家轉(zhuǎn)載茬底,轉(zhuǎn)載請注明原文出去