Пользовательская сборка SQLite из XCode не работает в Mono Develop - PullRequest
1 голос
/ 19 июля 2011

Я работаю над проектом iOS, которому требуется FTS для БД SQLite.

Я следовал инструкциям, найденным в Интернете, относительно создания пользовательской версии SQLite вместе с пользовательской функциейупорядочить результаты FTS по релевантности и построить все это с помощью XCode, установив новую цель статической библиотеки и получив libSQLite.a в качестве выходных данных.

На iOS все работает нормально!FTS, порядок релевантности и т. Д.

Теперь нужно перенести все на MonoTouch.Я следовал инструкциям по использованию libSQLite.a, созданного из XCode в проекте MonoDevelop, по адресу Как использовать FTS в SQLite с Monotouch для iOS

В частности, я написалОболочка SQLite в C # для библиотеки благодаря учебнику, найденному на http://www.switchonthecode.com/tutorials/csharp-tutorial-writing-a-dotnet-wrapper-for-sqlite

Я также изменил ссылки на .dll с помощью __Internal, как сказал вопрос SO, но все же я не могу понять, почему это не такt работа.

Приложение запускается и сразу завершает работу, даже если я не вызываю какой-либо метод класса SQLite.

Код просто останавливается в window.MakeKeyAndVisible ();

Это ошибка:

Stacktrace:

at (управляемая оболочкой) System.Reflection.Assembly.GetTypes (System.Reflection.Assembly, bool) в System.Reflection.Assembly.GetTypes () [0x00000] в /Developer/MonoTouch/Source/mono/mcs/class/corlib/System.Reflection/Assembly.cs:348 в MonoTouch.ObjCRuntime.Runtime.RegisterAssembly (System.Reflection.Assembly)[0x0004b] в/Users/plasma/Source/iphone/monotouch/ObjCRuntime/Runtime.cs:82 at (вызов времени выполнения оболочки) .runtime_invoke_void_object (object, intptr, intptr, intptr)

Собственная трассировка стека:

0   SQLiteFTSTest                       0x000d1965 mono_handle_native_sigsegv + 343
1   SQLiteFTSTest                       0x0000ffb4 mono_sigsegv_signal_handler + 322
2   libSystem.B.dylib                   0x980e845b _sigtramp + 43
3   ???                                 0xffffffff 0x0 + 4294967295
4   ???                                 0x077586fe 0x0 + 125142782
5   ???                                 0x077586c1 0x0 + 125142721Error connecting stdout and stderr (127.0.0.1:10001)

6   ???                                 0x0774df29 0x0 + 125099817
7   ???                                 0x0774e055 0x0 + 125100117
8   SQLiteFTSTest                       0x0000fd6f mono_jit_runtime_invoke + 1332
9   SQLiteFTSTest                       0x001ee239 mono_runtime_invoke + 137
10  SQLiteFTSTest                       0x0029bc55 monotouch_register + 90
11  SQLiteFTSTest                       0x002a24d7 main + 3562
12  SQLiteFTSTest                       0x000030c9 _start + 208
13  SQLiteFTSTest                       0x00002ff8 start + 40
14  ???                                 0x00000002 0x0 + 2

Отладочная информация из gdb:

/ tmp / mono-gdb-commands.A3ljfK: 1: Ошибка в исходном командном файле: невозможно отладить себя

Что мне делать?

...