Xamarin UWP — список контактов не работает, если он скомпилирован как выпуск

Я столкнулся с очень интересной "ошибкой" UWP.

Я использую Xamarin.Forms 2.3.3.193, и мне нужно вывести список контактов с устройства. В проекте UWP все работает нормально, если он скомпилирован в Debug, но больше не работает, если он скомпилирован в Release (конечно, Android и iOS всегда работают нормально).

Это 2 строки кода службы UWP, в которой перечислены контакты:

        ContactStore store = await ContactManager.RequestStoreAsync(ContactStoreAccessType.AllContactsReadOnly);
        IReadOnlyList<Contact> contacts = await store.FindContactsAsync();

Метод FindContactsAsync() возвращает список при отладке, но возвращает значение null при выпуске.

Я также использовал Xamarin.Plugin.Contacts от Джеймса Монтеманьо, но меня постигла та же участь.

Более того, я попробовал предложенное решение здесь безуспешно.

Любое предложение?


person Gianni Araco    schedule 06.09.2017    source источник


Ответы (1)


Это может произойти при использовании Compile with .NET Native tool chain, который является параметром для приложений UWP в окне Свойства > Сборка > Общие для проекта.

Попробуйте снять этот флажок.

Вы пытались выполнить сделайте это, но у вас это не сработало. Это должно работать согласно этой статье.

Попробуйте изменить файл App.xaml.cs в своем проекте UWP следующим образом:

// you'll need to add `using System.Reflection;`
List<Assembly> assembliesToInclude = new List<Assembly>();

//Now, add in all the assemblies your app uses
assembliesToInclude.Add(typeof (ContactManager).GetTypeInfo().Assembly);

Xamarin.Forms.Forms.Init(e, assembliesToInclude);
// replaces Xamarin.Forms.Forms.Init(e);
person Wilson Vargas    schedule 06.09.2017
comment
Спасибо Уилсон! Это спасло мой день. Флаг компиляции остался отмеченным, виновником была отсутствующая сборка. Я приблизился, но не попробовал правильный класс (ContactManager). - person Gianni Araco; 07.09.2017
comment
Пожалуйста! Я предполагаю, что поэтому я решил поставить правильный код :) - person Wilson Vargas; 07.09.2017