Приложение Pebble не распознает изображения ресурсов
Я добавил ресурсы с помощью кнопки "Добавить новое" рядом с ресурсами, а затем в своем коде я выполняю
image_logo = gbitmap_create_with_resource(RESOURCE_ID_IMAGE_APP_LOGO_LONG);
но я получаю следующую ошибку компиляции:
../src/main.c: In function 'main':
../src/main.c:120:44: error: 'RESOURCE_ID_IMAGE_APP_LOGO_LONG' undeclared (first use in this function)
../src/main.c:120:44: note: each undeclared identifier is reported only once for each function it appears in
Waf: Leaving directory `/tmp/tmpGhVqKn/build'
Build failed
Вот что содержит мой файл appinfo.json, я скачал его из раздела настроек приложения. Вы можете видеть, что изображения были добавлены с тем же идентификатором.
{
"appKeys": {
"agency": 0,
"cleanStops": 11,
"error": 10,
"eta": 8,
"getEta": 9,
"getRoutes": 5,
"index": 1,
"refresh": 4,
"routeId": 6,
"routeName": 7,
"stopId": 2,
"stopName": 3
},
"capabilities": [
"location",
"configurable"
],
"companyName": "joshua103us@yahoo.com",
"longName": "DoublePebble",
"projectType": "native",
"resources": {
"media": [
{
"file": "images/doublemap_menu_icon.png",
"menuIcon": true,
"name": "IMAGE_DOUBLEMAP_MENU_ICON",
"type": "png"
},
{
"file": "images/spoon_long_med-2.png",
"name": "RESOURCE_ID_IMAGE_APP_LOGO_LONG",
"type": "png"
}
]
},
"sdkVersion": "3",
"shortName": "DoublePebble",
"targetPlatforms": [
"aplite",
"basalt"
],
"uuid": "409b7111-c0bf-43bd-a90c-8a44c33d1eb3",
"versionLabel": "1.0",
"watchapp": {
"watchface": false
}
}
3 ответа
Часть RESOURCE_ID_ идентификатора ресурса добавляется системой к имени, указанному вами в appinfo.json
Например:
{
"file": "images/doublemap_menu_icon.png",
"menuIcon": true,
"name": "IMAGE_DOUBLEMAP_MENU_ICON",
"type": "png"
},
Затем вы будете использовать RESOURCE_ID_DOUBLEMAP_MENU_ICON.
В моем случае я столкнулся с той же проблемой в среде Cloudpebble, по-видимому, даже после форматирования изображения с помощью http://www.watchface-generator.de/converter/ и сохранения ресурса в соответствии с учебными пособиями по Pebble было похоже на то, что CloudPebble по-прежнему не будет признать. Это произошло только после того, как я нажал "Запустить сборку" в разделе компиляции среды CloudPebble... просто пытаясь сэкономить другим драгоценное время:)
Еще одно полезное замечание при работе в среде Cloudpebble: вы можете навести указатель мыши на имя файла ресурсов, и он скажет имя идентификаторов.
По какой-то причине мои имена отображались как имена, отличные от тех, которые, как я думал, я сохранил как в настройках. Ввод и редактирование имени (даже если вы просто удалите что-то и сохраните то же имя после редактирования) и сохраните его, должно решить проблему. Но в моем случае простое удаление ресурса и его загрузка снова решили мою проблему. Я подозреваю, что я мог настроить их как несколько идентификаторов. Внизу страницы есть кнопка "Другой идентификатор", и я думаю, что это была моя проблема. Это можно увидеть, когда вы наведете курсор на файл, у которого несколько имен в качестве идентификаторов (даже если они совпадают).