2012-09-27 45 views
0

我項目上的一個隊友添加了一個swc,其中包含一些mx日誌記錄類,現在我的項目獲勝了不會編譯。錯誤:Flash Builder(Flex)Air Project mx。* libraries swc Class mx.logging.targets :: LineFormattedTarget找不到

Class mx.logging.targets::LineFormattedTarget could not be found. 

我在最新的Flash Builder 4.6,全新安裝。我注意到當我去項目>屬性> Actionscript編譯器然後選擇庫,沒有選擇像以前那樣選擇MX。任何人都知道如何解決這個問題。我認爲swc背後的想法是它們是獨立的,不需要我添加額外的進口。謝謝。

+1

「我認爲swc背後的想法是,它們是獨立的,不需要我添加額外的進口。」 - 不必要。編譯swc時,就像編譯爲swf時一樣,您可以選擇嵌入框架包或者將它們鏈接起來,以便在運行時找到。 – JcFx

+1

是啊,swc背後的想法就像Java中的jar一樣,如果你很熟悉的話,它只是一個單獨的文件,它包含它所包含的類的元數據以及該swc的已編譯類的字節碼,這意味着它必然包含它所有的依賴項(儘管默認情況下我設置了Flash Builder,但我確定它會在引用的類中編譯)。您應該回滾到編譯庫所針對的SDK並使用它,或者2獲取原始源並更新它以針對最新的SDK進行編譯。 – shaunhusain

+1

可能值得注意的是,您可以使用任何壓縮工具(winzip或winrar或文件滾輪或其他)打開swc,然後您會在其中找到一個catalog.xml文件,該文件位於頂部,其中包含SWC編譯的Flex版本用。我發現嘗試用強大的文本編輯器打開大多數不熟悉的文件格式(如果我給它一個大文件,它不會死掉),如果在查看文本時看起來是亂碼,只是爲了查看我可以分開文件並理解它構成的內容。 – shaunhusain

回答

1

Yah很奇怪......所以在討論了上面的內容之後,我將一個示例項目扔在一起,並且這對我使用的4.6.0 SDK編譯良好,我可以在我的framework.swc中看到LineFormattedTarget類展開它在庫在左側導航:

<?xml version="1.0" encoding="utf-8"?> 
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
         xmlns:s="library://ns.adobe.com/flex/spark" 
         xmlns:mx="library://ns.adobe.com/flex/mx" 
         creationComplete="windowedapplication1_creationCompleteHandler(event)"> 
    <fx:Script> 
     <![CDATA[ 
      import mx.core.mx_internal; 
      import mx.events.FlexEvent; 
      import mx.logging.targets.LineFormattedTarget; 

      protected function windowedapplication1_creationCompleteHandler(event:FlexEvent):void 
      { 
       var test:LineFormattedTarget = new LineFormattedTarget(); 
      } 

     ]]> 
    </fx:Script> 
    <fx:Declarations> 
     <!-- Place non-visual elements (e.g., services, value objects) here --> 
    </fx:Declarations> 

</s:WindowedApplication> 

我會檢查,以確保它顯示的4.6引用的庫裏面的framework.swc,如果深港西部通道是不存在嘗試刪除並重新將該框架添加到庫路徑中,如果失敗,結果相同,我會查看新鮮的SDK。

相關問題