2012-11-01 79 views
2

我正在使用Flex Mobile和ZXing爲iOS和Android編寫一款條形碼掃描器。我儘可能多地優化了ZXing,但它仍然太慢,以至於不能在一些較舊的設備上進行連續掃描。我使用FlasCC將一些繁重的工作提取到C SWIG中,並在掃描過程中獲得了相當不錯的加速。雖然在實際設備上進行測試時,啓動我的應用時出現錯誤。調試控制檯顯示「互斥鎖無法初始化」並崩潰。刪除對我的SWC的電話,應用程序啓動就好了。首先,甚至可以在移動設備上使用這種類型的SWC?如果是這樣,我做錯了什麼?另外,生成的庫的大小非常大(400KB +)。有沒有辦法通過排除所有額外的絨毛來減小尺寸?移動AIR項目中的FlasCC SWC

回答

0

雖然你可以在手機上使用FlasCC,但我不會推薦它:你的代碼可以以本機速度運行,並且你可以訪問OS API。你有沒有看過Air Native Extensions

+0

我需要做什麼才能讓FlasCC在移動設備上工作?你爲什麼不推薦它?我研究了原生擴展,但iOS的ZXing庫僅掃描QR碼。對於我正在開發的項目,我真的需要能夠掃描一維和二維條形碼。 – Colin

+0

我沒有做任何特別的事情來讓FlasCC在手機上工作。很可能你有其他一些問題。你能夠在瀏覽器中運行你的SWF嗎? – paleozogt

+0

我簡單地用C語言創建了一個方法調用的庫,使用FlasCC將它打包成一個SWC,並將其包含在我的移動projet中。我沒有在瀏覽器中運行SWF,因爲它是一個移動項目,但它在AIR移動模擬器中效果很好,對於該特定方法而言速度提高了5倍。我想知道它是否與我如何打包有關,因爲錯誤與Preloader和Mutex有關。 – Colin

0

AIR for mobile還不支持Flash Workers,這是FlasCC多線程的基礎。你是想在後臺線程中運行ZXing,還是用「-pthread」編譯你的FlasCC SWC?

[編輯]其實有可能是我們的AIR移動啓動代碼,即使FlasCC代碼不帶螺紋的錯誤......現在正在測試一個補丁

+0

我沒有使用工人或任何多線程。就像我上面所說的,我創建了一個非常簡單的Hello World項目庫,並從Flex移動應用程序運行它。感謝您查看此問題。 – Colin

1

這是一個老問題,但在任何情況下,否則遇到此問題:

我有同樣的問題,修復只是使用最新版本的FlasCC(現在稱爲CrossBridge)重新編譯我的FlasCC SWC。

我使用CrossBridge版本1.0.1,它做到了。