2013-06-06 54 views
2

嘗試生成綁定項目時出現以下錯誤。這些信息有點神祕,我不確定什麼是錯誤的。單擊綁定項目生成錯誤

錯誤CS0117:MonoTouch.Constants' does not contain a definition for NimbusLibrary '(CS0117)(MonoTouch.Nimbus)

錯誤CS1502:用於 `MonoTouch.ObjCRuntime.Dlfcn.dlopen(字符串,整數)最好重載的方法匹配' 具有一些無效 參數(CS1502)(MonoTouch.Nimbus)

錯誤CS1503:參數#1' cannot convert對象 '表達鍵入 '字串'(CS1503)(MonoTouch.Nimbus)

我有時會注意到,當我關閉並重新打開項目時,然後重新生成,錯誤消息不會立即顯示,但不久之後,它們會馬上回來。

任何想法?讓我知道你是否需要我的綁定項目的源代碼。

+0

如果在重建之前清理解決方案,它會消失嗎?在MD/XS中存在一個相當古老的錯誤,如果磁盤上已經有中間文件,就會阻止建立綁定項目。 – Krumelur

+0

清潔仍然不能解決問題。我檢查了我的回購解決方案。檢查這個提交。 https://github.com/theonlylawislove/MonoTouch.Nimbus/tree/39f8cee373a2039240402035813b7717f1db18c8 –

+0

此提交可能有助於確定問題。註釋掉這些屬性導致構建通過。 https://github.com/theonlylawislove/MonoTouch.Nimbus/commit/02cc1aa273d182e80c91298f23e178575b63423a –

回答

4

這是因爲你缺少在最後記錄的[FieldAttribute]參數,上面寫着

如果要鏈接靜態,沒有綁定到庫中,所以你 需要使用__Internal名:

[Static] 
interface LonelyClass { 
    [Field ("MyFieldFromALibrary", "__Internal")] 
    NSString MyFieldFromALibrary { get; } 
} 

所以你現在結合看起來像這樣

[BaseType (typeof (NIRecyclableView))] 
public partial interface NIPageView : NIPagingScrollViewPage 
{ 
    [Field ("NIPagingScrollViewUnknownNumberOfPages")] 
    int NIPagingScrollViewUnknownNumberOfPages { get; } 

    [Field ("NIPagingScrollViewDefaultPageMargin")] 
    float NIPagingScrollViewDefaultPageMargin { get; } 
} 

而且必須是這樣的

[BaseType (typeof (NIRecyclableView))] 
public partial interface NIPageView : NIPagingScrollViewPage 
{ 
    [Field ("NIPagingScrollViewUnknownNumberOfPages", "__Internal")] 
    int NIPagingScrollViewUnknownNumberOfPages { get; } 

    [Field ("NIPagingScrollViewDefaultPageMargin", "__Internal")] 
    float NIPagingScrollViewDefaultPageMargin { get; } 
} 

這是因爲在年底,所有靜態庫將與主要的可執行文件合併。

希望這會有所幫助。

Alex