Это сильно зависит от используемой вами программы запуска. Изображение выглядит как стандартная форма иконки Google Android 8+ (?). Я полагаю, что это может быть частью иконы, которую вы создали, но так как вы спрашиваете об этом, я сомневаюсь в этом.
Он был введен, чтобы все иконки казались более единообразными. Длительное нажатие на пустое место в панели запуска Google Pixel, например, показывает выбор, чтобы перейти к настройкам панели запуска, и там вы можете изменить форму, которую должны иметь все значки:
В более старых версиях андроида внешняя форма значков была индивидуальной, в то время как довольно крутая и правильно отображенный контур при перетаскивании их и т. Д. Многие жаловались на отсутствие единого вида всех значков. ]
В дополнение к этому, приложения могут использовать различные формы, адаптироваться к ним и, так сказать, заполнять их. См., Например, значок Chrome при изменении формы значка в настройках программы запуска. Появилось в Android 8: функция называется адаптивные иконки.
См. Документы об адаптивных значках здесь: https://developer.android.com/guide/practices/ui_guidelines/icon_design_adaptive
Данное выражение оценивает к булевской переменной, не набору узлов. Я предполагаю, что Вы хотите проверить, равняется ли ProjectName параметрическому тексту. В этом случае необходимо записать
//ErrorTable/ProjectName[text()='{0}']
Это дает Вам список всех узлов (набор узлов) соответствие данному условию. Этот список может быть пустым, в этом случае C#-Expression в Вашем образце возвратит пустой указатель.
Машинально: можно использовать исходное выражение XPath, но не с SelectSingleNode, а с Оценивают, как это:
(bool)xmlDocument.CreateNavigator().Evaluate(String.Format("//ErrorTable/ProjectName/text()='{0}'", projectName));
Попытка:
Node node = xmlDocument.SelectSingleNode(String.Format("//ErrorTable/ProjectName = '{0}'", projectName));
if (node != null) {
// and so on
}
Править: глупая ошибка
Выражение XPath содержало тонкую ошибку. Это должно было быть:
xmlDocument.SelectSingleNode(String.Format("//ErrorTable/ProjectName[text()='{0}']", projectName));
Предыдущее выражение оценивало к булевской переменной, которая объясняет ошибку исключения. Спасибо за справку!