既然 XE6 已經正式 Release,很自然迫不及待的把之前在 XE5 Upd2 開發的專案直接拿來編譯看看有沒有可以得到什麼好處(執行速度更快?更穩定?Showmessage?...)
沒想到好處還沒體驗到,筆者在編譯過程就遇到了一些狀況,在此也先提出來與各位分享
1.Unit name 變更
話說 XE5 畢竟是第一個支援 android 開發的版本,XE6 變更相關 Unit name 進行重構,自然也就不足為奇,只是苦了我們這些老百姓,在還沒深入研究前,已經知道變更的部分有
a.FMX.Sensors
不存在了...直接移除就好
b.Androidapi.JNI.JavaTypes -> Androidapi.Helpers
如果有用到 JStringToString or StringToJString,請改 use Androidapi.Helpers
c.FMX.Messages -> System.Messaging
訊息傳遞框架會用到的 unit 也重構了...
2.classes.dex
如果你跟筆者一樣會用到自己編譯出來的 classes.dex,那麼請在 XE6 環境中重新編譯 classes.dex,否則 project 轉上來後直接編譯,會死得粉難看
3.stylebook
如果你在 XE5 的專案有用 stylebook,那麼轉到 XE6 並開啟專案後,你馬上會得到一個錯訊,提示你某個 property 不存在了,這也還好,老 delphi 使用者應該習慣了,點選 Ignore 就好
但是接下來就沒這麼友善了,如果你想儲存這個 form,按一下「Ctrl-S」,你馬上會獲得第二個獎品
解決方式...自行開啟 xxx.fmx,把跟 stylebook 相關的部分都刪除...豈是一個「慘」字可以形容
4.TVirtualKeyboardStates 變更
如果你會用到去攔截 android 硬體返回鍵,那麼通常你會寫到...
其中 vksVisible 已經不存在了,請改用 TVirtualKeyboardState.Visible
to be continued..