Android錯誤-error: Found text " " where item tag is expected


error: Found text " " where item tag is expected

如果你是自己創建的一個文件,里面自己寫<string name="key">value</string>然后再拷貝到strings.xml中,或者從別的文檔中拷貝粘貼的,,則可能會出現上述為題,非常惡心

這個錯誤的原因是空格的格式不正確而引起的

解決方案:

1.在eclipse編輯器中重寫一遍<string name="key">value</string>標簽拷貝出去,在里面填入value

2.刪除空格。拷貝后,將每一行按delete鍵返回到上一行的行尾,然后回車使其自動對其,同時也就刪除了非法的空格

 
網上還看到了如下的解決方案,類似
所以為了解決這個問題,建議:
 
1.檢查是否存在不必要的空格,如有即刪。如果不行,那么2;
2.重新進行復制粘帖,盡量不要使用不同的文檔格式。如果不行,那么3;
3.Replace所有xml文檔中whitespace with你手工敲出的space. 如果不行,那么4;
4.自己手工重新編輯一遍。
 
這類錯誤可以試試用MS word or excel調用一下文檔,看是否空格格式錯誤。

補充說明一下:類似的錯誤(xml文檔中空格格式錯誤)還會gen文件夾中R.java出現
Syntax error on tokens, delete these  tokens
的報錯。同樣通過以上的方法可以解決這個錯誤。
 
Activity has leaked window that was originally added
場景:
在應用中處理耗時操作時,比如網絡操作等為了增加用戶體驗,會使用線程+handler或android提供的AsyncTask來解決問題,一般是自定義Dialog或ProgressDialog顯示進度。而這種異常就經常出現在這種場景
原因:
一個老外的解釋:
Views have a reference to their parent Context (taken from constructor argument). If you leave an Activity without destroying Dialogs and other dynamically created Views, they still hold this reference to your Activity (if you created with  this as Context: like  new ProgressDialog(this)), so it cannot be collected by the GC, causing a memory leak.
主要是由於存在窗口句柄泄漏,在銷毀activity時沒有銷毀掉某個PhoneWindow(即Dialog)
 View擁有它所在的Context的引用(通過構造函數的參數獲得),當退出Activity沒有關閉動態創建的View(如Dialog),它會一直擁有Context的引用,從而不能被GC回收,從而導致內存泄露。知道原因就好辦了,我們在Activity中的OnDestroy()方法中釋放資源就OK了,以下是我這種情況下的解決辦法,其它控件也類似。
解決辦法:

@Override
protected void onDestroy() {
if(refreshPd!=null)
{
refreshPd.dismiss();
}
super.onDestroy();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM