Декоратор атрибутов службы с ЛЮБЫМ дополнительным свойством вызывает проблему «не удалось разобрать пакет» в зефире Android - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь создать JobService с Xamarin.Поскольку я не могу просто вставить разрешение в AndroidManifest, я должен добавить его в качестве свойства атрибута, и при этом оно вызывает ошибки синтаксического анализа при попытке установки на устройства с маршмеллоу.Я также не могу отлаживать устройство с зефиром, когда у меня установлен атрибут декоратора.Вот мое объявление JobService:

    [Service(Name = "com.something.someapp", Permission = "android.permission.BIND_JOB_SERVICE")]
    public class HandlePushNotificationJobService : JobService
    { 
....
    }

У меня также есть другая служба (просто обычная служба, а не JobService), и я попытался добавить в нее только свойство «name», и возникает та же проблема:ошибка синтаксического анализа при установке подписанного apk и не может быть отлажена на устройстве напрямую.

Это две довольно серьезные ошибки, которые я обнаружил в Xamarin за столько дней.Есть ли какой-то другой способ добавить эти декларации сервиса непосредственно в манифест?Когда я пытаюсь просто вставить узел xml в манифест и удалить атрибут, это вызывает проблемы на устройствах, которые ДОЛЖНЫ работать с атрибутом, потому что он не может найти ссылку на службу (я пробовал почти все способы ссылаться на путьЯ могу подумать (имя моего пакета + имя класса, пространство имен + имя класса, относительные пути + имя класса и т. Д.)).

Конечно, кто-то еще сталкивался с этим, и команда Xamarin (команда MS) знает оthis?

Есть ли исправления для этого?

TIA

1 Ответ

0 голосов
/ 21 мая 2018

Я искал часы прошлой ночью и ничего не смог найти.Сразу после публикации я решил попробовать еще раз и обнаружил:

https://forums.xamarin.com/discussion/108772/replacing-services-with-jobs-in-android-oreo-8-0

У MSiccDev было решение (удалить свойство name).Так что это работает для меня:

    [Service(Permission = "android.permission.BIND_JOB_SERVICE")]
    public class HandlePushNotificationJobService : JobService
    { 
....
    }
...