無標題文章

1.? Activity ca.ct.activity.OBaccaratActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@42db0500 that was originally added here? ? ? ? ? ? ? ? ? ~~~ 出現(xiàn)錯誤的情景是:當我點擊返回鍵攀唯,退出一個activity進入另一個activity的時候,有一個dialog,或者是其他的組件在提示,但是這個時候我著急又很快的按了一下返回鍵就報這樣的錯誤? ? ? ? ? ~~~ 解決方法:在dialog中添加一下代碼? ? [java] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? public void onDestroy(){? ? ? ? ? ? ? super.onDestroy();? ? ? ? ? ? ? if(dialog !=null){? ? ? ? ? ? ? ? ? dialog.dismiss();? ? ? ? ? ? ? ? ? dialog =null;? ? ? ? ? ? ? }? ? ? ? ? }? ? ? 2.Fatal signal 11 (SIGSEGV) at 0x00000040 (code=1), thread 20476 (.example.new)? ? ? ? ? ? ~~~出現(xiàn)錯誤的情景:同樣的,某個頁面有視頻播放器棚唆,調(diào)用surface,和jni,當我點擊返回鍵王污,然后在很快的點擊一下以后,會報上面的東西楚午,但是并沒有java的異痴哑耄或者其他提示信息出現(xiàn)? ? ? ? ? ? ~~~解決方法:目前并沒有找到解決的辦法。也不知道什么原因矾柜。但是有一篇博客寫的和我的qi類似阱驾,但是照著他的方法并沒有解決我的問題就谜。http://blog.csdn.net/sonikk/article/details/9217181? ? 3.android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.? ? ? ? ~~~在非主線程中直接設置組件會拋出這樣的異常。比如我為了簡單在線程中為TextView.setText().這個在低版本中是可以運行里覆。高版本中操作頁面的必須在主線程中丧荐。這里只能用handler? ? 4,ava.lang.IllegalStateException: Could not execute method of the activity? ? ? ? ? ? Caused by: java.lang.reflect.InvocationTargetException? ? ? ? ? ? Caused by: java.lang.NullPointerException? ? ? ? ? ? 說白了就是無法執(zhí)行和activity相關的方法,為什么無法執(zhí)行呢,因為你給系統(tǒng)的是空引用,出現(xiàn)空指針錯誤? ? ? ? ? ? 造成這種因素的原因很多,我目前已知的,就是代碼的順序問題,在onCreate方法中租谈。? ? 5.has leaked window com.android.internal.policy.impl.PhoneWindow$ that was originally added here? ? ? ? ? ~~~出現(xiàn)錯誤的情景:? ? 經(jīng)常在應用中需要處理一些耗時的工作篮奄,諸如讀取大文件、訪問網(wǎng)絡資源等割去。為了避免因程序假死而帶來的糟糕用戶體驗窟却,通常我們可以通過線程+Handler或者Android提供的AsyncTask來解決該問題,并一般以ProgressDialog等提示性控件來告知用戶當前的程序進度呻逆。而標題中描述的異常則會常常出現(xiàn)在這樣的場景中夸赫,并且往往掩蓋了導致異常的真正的罪魁禍首。? ? ? ? ? ~~~問題原因:? ? 從異常描述中咖城,大致的意思是存在窗口句柄泄露茬腿,即未能及時銷毀某個PhoneWindow。而這往往誤導了我們宜雀,把過多的精力放在查找所謂的內(nèi)存泄露上了切平。其實存在這么一種情況,即因我們在非主線程中的某些操作不當而產(chǎn)生了一個嚴重的異常辐董,從而強制當前Activity被關閉悴品。而在關閉的同時,卻沒能及時的調(diào)用dismiss來解除對ProgressDialog等的引用简烘,從而系統(tǒng)拋出了標題中的錯誤苔严,而掩蓋了真正導致這個錯誤的異常信息。? ? ? ? ? ~~~解決方法之一:? ? 本解決方法并不能真正的解決問題孤澎,但是在一定程度上可以將真正導致錯誤的異常信息顯露出來届氢。即重寫Activity的onDestroy方法,在方法中調(diào)用dismiss來解除對ProgressDialog等的引用覆旭。? ? 6.遇到過兩次退子,在RelativeLayout中當我將兩個組件調(diào)換位置一個在上一個在下時,在activity中實例化這個組件就會報類型轉換異常姐扮,目前沒找到問題原因絮供。? ? 7.Unable to start activity ComponentInfo{com.example.new855/ca.ct.activity.FanTanActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class? ? ? ? Caused by: java.lang.OutOfMemoryError:? ? ? ? ? ? ? ? 理由以及原因:At runtime, Android resize's images based on need (based on the screen size and resolution). It uses Bitmap's for doing the resizing internally. Which, obviously, is very memory intensive (kinda allocates memory like crazy). One quick way to fix such issues can be, that you copy all drawable files to drawable-ldpi, mdpi, hdpi folders. This way android will just pick up the files from these folders and not resize them.? ? 簡單點內(nèi)存泄漏,這個是一大篇幅的內(nèi)容茶敏,需要慢慢去研究。? ? 8.IllegalArgumentException: View not attached to window manager? ? 引起的原因:A應用在使用Intent顯示啟動其他應用缚俏,當關閉其他應用顯A應用界面時報錯惊搏。? ? 解決方法1:? ? A應用使用startActivityForResult(intent)啟動其他應用? ? 解決方法2:? ? 關閉其他應用時每次都使用Intent重新拉起一遍A應用? ? 在A中啟動B贮乳,B中有線程操作,結束時涉及到對話框的dismiss恬惯。如果在操作尚未結束時向拆,按下HOME鍵,線程后臺操作酪耳。此時重新進去A浓恳,等到線程操作完成就會出現(xiàn)這個異常。此時應該做一個判斷碗暗,如下:? ? [java] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? // Dismiss the Dialog only when the parent Activity is still alive.? ? ? ? ? if (SelectContactsActivity颈将!=null&&!SelectContactsActivity.this.isFinishing()) {? ? ? ? ? ? ? ? mProgressDialog.dismiss();? ? ? ? ? }? ? ? 9.IllegalArgumentException: connection is null? ? ? 有時候同樣的代碼,在一個機子上可以正常執(zhí)行言疗,在另一個機子上就會報這也的異常晴圾。這是因為綁定服務的時候bindService(intent, null, BIND_AUTO_CREATE);這也寫的,但是高版本中ServiceConnection不能為空噪奄。所以要new一個出來死姚。應該這也寫? ? [java] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? bindService(intent, new ServiceConnection() {? ? ? ? ? ? ? @Override? ? ? ? ? ? ? public void onServiceDisconnected(ComponentName name) {? ? ? ? ? ? ? ? ? // TODO Auto-generated method stub? ? ? ? ? ? ? }? ? ? ? ? ? ? @Override? ? ? ? ? ? ? public void onServiceConnected(ComponentName name, IBinder service) {? ? ? ? ? ? ? ? ? // TODO Auto-generated method stub? ? ? ? ? ? ? }? ? ? ? ? }, BIND_AUTO_CREATE);? ? ? ? 10、 你后臺的Activity被系統(tǒng)回收怎么辦:onSaveInstanceState? ?   當你的程序中某一個Activity A 在運行時中勤篮,主動或被動地運行另一個新的Activity B  這個時候A會執(zhí)行? ?   Java代碼? ? [java] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? ? public void onSaveInstanceState(Bundle outState) {? ? ? ? ? ? ? super.onSaveInstanceState(outState);? ? ? ? ? ? ? outState.putLong("id", 1234567890);? ? ? ? ? ? }? ? ? ? ? public void onSaveInstanceState(Bundle outState) {? ? ? ? ? ? ? ? ? super.onSaveInstanceState(outState);? ? ? ? ? ? ? ? ? outState.putLong("id", 1234567890);? ? ? ? ? }? ? ?   B 完成以后又會來找A, 這個時候就有兩種情況都毒,一種是A被回收,一種是沒有被回收碰缔,被回 收的A就要重新調(diào)用onCreate()方法账劲,不同于直接啟動的是這回onCreate()里是帶上參數(shù)savedInstanceState,沒被收回的就還是onResume就好了手负。? ?   savedInstanceState是一個Bundle對象涤垫,你基本上可以把他理解為系統(tǒng)幫你維護的一個Map對象。在onCreate()里你可能會用到它竟终,如果正常啟動onCreate就不會有它蝠猬,所以用的時候要判斷一下是否為空。? ? 11. 如何將SQLite數(shù)據(jù)庫(dictionary.db文件)與apk文件一起發(fā)布?? ? ? ?   解答:可以將dictionary.db文件復制到Eclipse Android工程中的resaw目錄中统捶。所有在resaw目錄中的文件不會被壓縮榆芦,這樣可以直接提取該目錄中的文件〈瘢可以將dictionary.db文件復制到resaw目錄中? ? 12.Gradle DSL method not found: 'runProguard()'? ? 要讓sync成功匆绣,改下gradle的版本就可以了,如下:? ? dependencies {? ? ? ? ? ? classpath 'com.android.tools.build:gradle:0.14.1'? ? ? ? ? ? // NOTE: Do not place your application dependencies here; they belong? ? ? ? ? ? // in the individual module build.gradle files? ? ? ? }? ? 但是真正的解決辦法是將一下內(nèi)容更換就可以? ? [html] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? buildTypes {? ? ? ? ? ? ? release {? ? ? ? ? ? ? ? ? runProguard false // 已經(jīng)被廢棄并且停止使用了? ? ? ? ? ? ? ? ? ......? ? ? ? ? ? ? }? ? ? ? ? }? ? ? new:? ? [html] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? buildTypes {? ? ? ? ? ? ? release {? ? ? ? ? ? ? ? ? minifyEnabled false // 替代的方式? ? ? ? ? ? ? ? ? ......? ? ? ? ? ? ? }? ? ? ? ? }? ? ? 13:Gradle version 2.10 is required. Current version is 2.8 Error? ? https://services.gradle.org/distributions/gradle-2.10-all.zip? 從該鏈接下載文件? ? Settings > Builds,Execution,Deployment > Build Tools > Gradle >Gradle home path什黑。 修改2.8的目錄改為2.10? ? 14:cannot perform this action after onsaveinstancestate崎淳。? ? 百度了一下,都說將commit替換成commitAllowingStateLoss就可以了愕把。(我的問題在于在onResume()方法內(nèi)使用fragment的commit)這樣替換的確解決了問題拣凹,但是后來仔細研究了下才發(fā)現(xiàn)事情沒這么簡單森爽。? ? 拋出異常的原因? ? 眾所周知,Android系統(tǒng)可以為了釋放資源在任意時刻終止進程嚣镜,有些后臺運行的進程可能都不會有任何提示的被殺爬迟。而onSaveInstanceState()就是給activity一個最后機會去保存它需要保存的東西,bundle對象就是所要保存信息的載體被傳到系統(tǒng)服務進程菊匿,如果有朝一日該activity被重新創(chuàng)建時付呕,該對象就會被傳回幫助activity重現(xiàn)先前的狀態(tài)。那么拋出異常的原因在哪兒呢跌捆?事實上bundle對象僅僅是activity在調(diào)用onSaveInstanceState()時的快照徽职,也就意味著在onSaveInstanceState()后使用FragmentTransaction#commit()時,bundle并沒有對該transaction作保存而在activity還未恢復到最初狀態(tài)時調(diào)用疹蛉,這樣便會出現(xiàn)UI的丟失活箕,為了保護用戶體驗IllegalStateException就被拋出了。? ? 版本差異? ? 如何避免? ? 1 在activity生命周期方法內(nèi)使用FragmentTransaction#commit()應謹慎? ? ? 多數(shù)的應用會在onCreate()中使用該方法可款,所以不會遇到這樣的問題育韩,但如果在onActivityResult(), onStart()或onResume()中使用時就有可能遇到了。那么如果因為一些原因一定要在這些方法中使用FragmentTransaction#commit()該怎么辦呢(比如說從下一個頁面回來時需要刷新界面的時候)闺鲸。這時最好在FragmentActivity#onResumeFragments()或者Activity#onPostResume()中使用筋讨。這兩個方法會保證在activity恢復到最初狀態(tài)后被調(diào)用。? ? 2 commitAllowingStateLoss()只能當做最后的手段? ? ? ? commit和commitAllowingStateLoss()之間的唯一區(qū)別是如果狀態(tài)丟失后者僅僅是不拋出異常而已摸恍。一般情況下你不會想用這個方法因為它仍然會有狀態(tài)丟失的可能悉罕。? ? 由于在百度上看到多數(shù)的解決辦法是使用commitAllowingStateLoss(),并非說這個辦法不行立镶,而是盡量精益求精壁袄,找到問題的本質所在。翻譯有出入 媚媒,請盡量看原文嗜逻。? ? 詳細的信息請參考原作者文章:http://www.androiddesignpatterns.com/2013/08/fragment-transaction-commit-state-loss.html? ? 15:Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xxx.MainActivity}: java.lang.IllegalStateException: This app has been built with an incorrect configuration. Please configure your build for VectorDrawableCompat.? ? 產(chǎn)生的原因是:com.android.support:appcompat-v7與rasterized vectors不兼容,gradle2.0及其之上缭召,library的資源沒有柵格化栈顷,所以不會發(fā)生這個問題? ? 2. 解決方案:? ? 1.在projectgradle中將gradle版本改為2.0或者之上? ? 2. 再次運行,此時控制臺輸出異常:? ? [html] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? Warning:Gradle version 2.10 is required. Current version is 2.8. If using the gradle wrapper, try editing the distributionUrl in xxx\bbb\gradle-wrapper.properties to gradle-2.10-all.zip? ? ? 按照路徑所指出的地址,找到文件gradle-wrapper.properties嵌巷,編輯最后一句版本號為日志中所輸出的版本? ? [html] view plain copy? ? 在CODE上查看代碼片派生到我的代碼片? ? ? ? distributionBase=GRADLE_USER_HOME? ? ? ? ? distributionPath=wrapper/dists? ? ? ? ? zipStoreBase=GRADLE_USER_HOME? ? ? ? ? zipStorePath=wrapper/dists? ? ? ? ? distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip? ? ? 3. 再次運行萄凤,還是錯誤,原因是你還沒有下載gradle-2.10? ? 這時可以從網(wǎng)上下載一個gradle-2.10.zip并解壓搪哪,然后放到AndroidStudiodd的默認gradle配置目錄

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末靡努,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌颤难,老刑警劉巖神年,帶你破解...
    沈念sama閱讀 216,997評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件已维,死亡現(xiàn)場離奇詭異行嗤,居然都是意外死亡,警方通過查閱死者的電腦和手機垛耳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,603評論 3 392
  • 文/潘曉璐 我一進店門栅屏,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人堂鲜,你說我怎么就攤上這事栈雳。” “怎么了缔莲?”我有些...
    開封第一講書人閱讀 163,359評論 0 353
  • 文/不壞的土叔 我叫張陵哥纫,是天一觀的道長。 經(jīng)常有香客問我痴奏,道長蛀骇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,309評論 1 292
  • 正文 為了忘掉前任读拆,我火速辦了婚禮擅憔,結果婚禮上,老公的妹妹穿的比我還像新娘檐晕。我一直安慰自己暑诸,他們只是感情好,可當我...
    茶點故事閱讀 67,346評論 6 390
  • 文/花漫 我一把揭開白布辟灰。 她就那樣靜靜地躺著个榕,像睡著了一般。 火紅的嫁衣襯著肌膚如雪芥喇。 梳的紋絲不亂的頭發(fā)上西采,一...
    開封第一講書人閱讀 51,258評論 1 300
  • 那天,我揣著相機與錄音乃坤,去河邊找鬼苛让。 笑死,一個胖子當著我的面吹牛湿诊,可吹牛的內(nèi)容都是我干的狱杰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,122評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼厅须,長吁一口氣:“原來是場噩夢啊……” “哼仿畸!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,970評論 0 275
  • 序言:老撾萬榮一對情侶失蹤错沽,失蹤者是張志新(化名)和其女友劉穎簿晓,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體千埃,經(jīng)...
    沈念sama閱讀 45,403評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡憔儿,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,596評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了放可。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片谒臼。...
    茶點故事閱讀 39,769評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖耀里,靈堂內(nèi)的尸體忽然破棺而出蜈缤,到底是詐尸還是另有隱情,我是刑警寧澤冯挎,帶...
    沈念sama閱讀 35,464評論 5 344
  • 正文 年R本政府宣布底哥,位于F島的核電站,受9級特大地震影響房官,放射性物質發(fā)生泄漏趾徽。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,075評論 3 327
  • 文/蒙蒙 一易阳、第九天 我趴在偏房一處隱蔽的房頂上張望附较。 院中可真熱鬧,春花似錦潦俺、人聲如沸拒课。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,705評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽早像。三九已至,卻和暖如春肖爵,著一層夾襖步出監(jiān)牢的瞬間卢鹦,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,848評論 1 269
  • 我被黑心中介騙來泰國打工劝堪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留冀自,地道東北人。 一個月前我還...
    沈念sama閱讀 47,831評論 2 370
  • 正文 我出身青樓秒啦,卻偏偏與公主長得像熬粗,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子余境,可洞房花燭夜當晚...
    茶點故事閱讀 44,678評論 2 354

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,095評論 25 707
  • 1.要做一個盡可能流暢的ListView驻呐,你平時在工作中如何進行優(yōu)化的灌诅? ①Item布局,層級越少越好含末,使用hie...
    fozero閱讀 723評論 0 0
  • WebView·開車指南 2016-08-31BugDev 北京市東城區(qū)首席Bug布道師開山之作猜拾,一整月交通事故血...
    53c021c38a1d閱讀 829評論 0 1
  • Android中View和ViewGroup關系大揭密 1. 概念 Android中的View與我們以前理解的“視...
    所以一直走啊閱讀 441評論 0 4
  • 文/木子 01 “我大孫女什么時候能醒過來挎袜?”這是奶奶慌張的聲音,還有那雙滿是皺紋褶皺的大手拉著我的小手沼撕,我知道這...
    木子色的柚子閱讀 195評論 0 3