發表文章

[Android] One of "Installation failed due to invalid APK file!"

Today I encounter this error shows in Eclipse console: [xxxx - xxx] Installation failed due to invalid APK file! [xxxx - xxx]  Please check logcat output for more details. [xxxx - xxx]  Launch canceled! then I checked logcat and get a similar message like this one on stackoverflow , You can find sentence like "Unable to read AndroidManifest.xml" in the error message 03 - 03 00 : 43 : 50.508 : W / PackageParser ( 512 ): Unable to read AndroidManifest . xml of / data / local / tmp / Linking Manager . apk If you search "Installation failed due to invalid APK file!" or "Unable to read AndroidManifest.xml", you will get many , many solutions to varying problem sources. But non of them, at least the first couple of articles in my search results, have never mentioned my situation, so here I am trying to contribute one to join them. Problem source:  the *.so file related to my project is out of date Solution: update *.so file

Flex的官方文件

感覺Flex的文件有好幾個,搞不清楚到底應該怎麼看,以這篇文章來自我釐清一下脈絡。 Livedocs Using Flex (位於livedocs裡, 網址裡面已經說明只有Flex3的內容) http://livedocs.adobe.com/flex/3/html/index.html 這份文件很棒,以口語化的內容向開發者介紹Flex各個環節, 文中並嵌入 source code和範例,就像是一本寫得很好的書。想要了解某個機制的設計和概念時,可以先從這邊開始閱讀。user可以針對每篇內容做討論。 Help Using Flex (位於Help裡) http://help.adobe.com/en_US/flex/using/index.html 與Livedocs的內容幾乎一模一樣,但網址裡面沒有限定某一個版本,所以內容包含Spark的介紹也合理。一樣的內容,但Index書目跟Livedocs卻不一樣,但稍微比對一下發現只是章節編排的位置不同。比如Deployment的章節,在Help裡位於最後一章,但在Livedocs卻是位於中間介紹完Development的地方。Help裡面經常會附帶有Builder的操作步驟。跟Livedocs一樣,user可以針對每篇內容做討論,Help裡面也有這個機制,但可能比較新的關係,Help的討論幾乎沒有,在Livedocs中的討論比較多。 不一樣的地方來了,(1) 對於Flex Builder的介紹方面,Livedocs是針對比較舊的Flex Builder 3做介紹,新的Flash Builder 4以上所具有的功能當然就沒有,這很合理。至於內容上,又是否有什麼不一樣呢? [TODO] 實際找一個需要了解 topic的內容,兩邊都看過再來比較。然後,Help裡面會包含,但LiveDocs裡面不會有。(2) 有包含AIR的介紹。不一樣的地方,沒有包含AIR的介紹。(3) Help文件有中文翻譯,只要把"en_US"的路徑,改為"zh_TW"就可以看到中文版,如果沒有繁體中文版會被導到英文版中,這時也可以"zh_CH"試試簡體中文版。不曉得為何不直接在UI上提供語言切換,又是一個謎。(4) 有行動應用方面的資訊,

Android ADT 21.0.1 Bug

最近安裝Android ADT 21.0.1,編譯時會提示: Errors running builder 'Android Pre Compiler' on project 'XXX' java.lang.NullPointerException 找不到問題頭痛非常久, 後來 才知道原來有個Bug會因為project檔案裡有任何檔案沒有副檔名而造成編譯失敗... 太冏了...原本一直搞不懂為啥source裏頭會有無檔名出現...結果發現因為source經常會跟svn做同步,而svn裡面很多無副檔名的檔案,這種問題很難發覺和debug! 所幸這個問題在adt 21rc3 preivew版裡有修正,所以已經安裝這版的人可以先安裝preview版來解決這問題。 更新方法 如此所示 ,必須Platform-Tools和ADT兩者都更新才有用。更新完畢就可以了,接著就等著某某天再來煩惱怎麼改回非preview版。

Android的@Override Error

圖片
久久沒用Android,重新安裝了環境、匯入Propject後跑出了一些錯誤,都是沒有實作的error,如: Multiple markers at this line - implements android.text.TextWatcher.afterTextChanged - The method afterTextChanged(Editable) of type showTextInputDialog.CustomTextWatcher must override a superclass  原來這是 Java SDK版本對於註記符號支援度 的問題,ADT預設使用Java 1.5( language level 5) 編譯內容,但1.5檢查source的時候並不認得「@Override」註記方法,而認為該class沒有正確override,只要把language level改成1.6(以上)就可以了。修改位置: project >  property > java compiler > Compiler compliance level > 1.6。

Flex 3 Tree 元件的資料更新Bug

圖片
Flex 3 的Tree元件可以使用filterFunction來做過濾的功能,比如介面上有一個文字框,輸入文字後比對Tree內容,不包含這段過濾文字者就不顯示。正確情況應該如下圖所示。 但是如果資料的筆數很多時,在Tree元件上使用filterFunction過濾資料時,Tree的內容會亂掉並跑出幾個奇怪的現象: 過濾以後的Tree高度,不會更新,所以ScrollBar一樣可以向下拉動很長的高度。如下圖示,ScrollBar還是很小,表示Tree內容很長。 過濾後,Tree內容仍然保持很長,那不應該存在的cell會怎樣呢?結果Tree裡面會自動找東西亂填cell,如下圖,過濾後應該有5個cell,但超過第3個cell的名稱就開始重複了。 即使使用了invalidateList、validateNow、Collection.refresh等方法也沒有用,標準解法目前未知,但可以用下列方式將顯示更正。在呼叫完filterFunction以後,加上下列方式: tree.expandItem( [your tree data] ,false); tree.expandItem( [your tree data] ,true); 語意上就是讓Tree展開和關閉一次,expandItem方法內部觸發了某個正確的resize和display方法,什麼方法?暫不研究。

Flash Platform 重大更新 -- Flash Player 11.4 and AIR 3.4

近日Flash Platform提出重大更新 --  Flash Player 11.4 and AIR 3.4,更新重點節錄如下: Flash Player 11.4 webcam support for StageVideo broader   Stage3D support Starling framework  has been updated to be constrained mode ready (?) AIR 3.4 iOS push notifications iOS 5.1 SDK support compressed texture with alpha for stage3D  (?) Webcam support for StageVideo Flash Builder 4.7 beta Apache Flex 4.8 support for Flash Player 11.4 AIR 3.4  and many improvements to iOS app development workflows including USB debugging, iOS simulator support, and direct on-device deployment. Flash Professional (early September) ToolKit CreateJS 1.1 support for Flash Player 11.4 and AIR 3.4 improved iOS app development workflows including iOS simulator support, and direct on-device deployment ::References:: 完整更新列表: Flash Player and Adobe AIR feature list 新聞來源: Enabling the web and app development with new bleeding edge technology – Flash Player 11.4 and AIR 3.4

ActionScript的Dictionary

當作動態集合時, Dictionary 跟Object的功能很類似,唯一的不同點就是Dictionary可以設定為弱引用,這樣當Dictionary中紀錄了大量的資料時,可以自行識別集合中的物件是否已經剩下Dictionary中才存在了,是的話就會把引用從Dictionary中移除,如此一來可以讓Dictionary集合的記憶體使用比較有效率。