2014-01-02 3 views
0

Я пытаюсь сделать привязки для чтения PDF Vfr: https://github.com/vfr/Reader Это приложение ObjectiveC.Проблемы с MonoTouch при связывании библиотеки ObjectiveC

Я последовал за прохождение игры от Xamarin там: http://docs.xamarin.com/guides/ios/advanced_topics/binding_objective-c/binding_walkthrough/

К сожалению, я до сих пор изо всех сил на одном вопросе. В моей AppDelegate я экземпляр ReaderDemoController, который приходит из библиотеки Vfr чтения, но при запуске на устройстве (iPhone5), он продолжает говорить:

Wrapper type 'Hager.VfrReaderCoreBinding.ReaderDemoController' is missing its native ObjectiveC class 'ReaderDemoController'. 

это странно, так как библиотека Жир содержит i386, ARMv7 , armv7s и arm64 (сделано с использованием lipo). Это содержание LinkWith файла:

[assembly: LinkWith ("libVfrReaderCoreNative.a", LinkTarget.Simulator | LinkTarget.ArmV7 | LinkTarget.ArmV7s, ForceLoad = true)] 

В файле ApiDefinition это интерфейс ReaderController:

[BaseType (typeof (UIViewController))] 
public interface ReaderDemoController { 
} 

Ничего на самом деле "сложным". Любая идея о том, что может быть причиной? Это решение для связывания: solution zipped

Это также не работает в симуляторе. Я получаю:

Could not create an native instance of the type 'Hager.VfrReaderCoreBinding.ReaderDemoController': the native class hasn't been loaded. 

можно игнорировать это условие, установив MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure ложь.

+0

Он работает в симуляторе? Каков ваш атрибут LinkWith? –

+0

Я отредактировал и добавил контент LinkWith. Он также не работает в симуляторе. Я получаю: «Не удалось создать собственный экземпляр типа« Hager.VfrReaderCoreBinding.ReaderDemoController »: родной класс не был загружен. Можно проигнорировать это условие, установив MonoTouch.ObjCRuntime.Class.ThrowOnInitFailure в false. " – Fabien

ответ

2

Похоже библиотекой Objectice-C не был построен правильно, если вы запустите nm на нем вы увидите, что это почти пусто:

$ nm libVfrReaderCoreNative.a 

libVfrReaderCoreNative.a(VfrReaderCoreNative.o): 
0000000000000000 s L_OBJC_CLASS_NAME_ 
       U _OBJC_CLASS_$_NSObject 
00000000000000d0 S _OBJC_CLASS_$_VfrReaderCoreNative 
       U _OBJC_METACLASS_$_NSObject 
00000000000000a8 S _OBJC_METACLASS_$_VfrReaderCoreNative 
       U __objc_empty_cache 
       U __objc_empty_vtable 
0000000000000060 s l_OBJC_CLASS_RO_$_VfrReaderCoreNative 
0000000000000018 s l_OBJC_METACLASS_RO_$_VfrReaderCoreNative 

В частности, ничего связанного с ReaderDemoController.

+0

Большое спасибо Рольф, это была проблема с жирной библиотекой – Fabien

Смежные вопросы