Приложение 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: вы можете навести указатель мыши на имя файла ресурсов, и он скажет имя идентификаторов.

По какой-то причине мои имена отображались как имена, отличные от тех, которые, как я думал, я сохранил как в настройках. Ввод и редактирование имени (даже если вы просто удалите что-то и сохраните то же имя после редактирования) и сохраните его, должно решить проблему. Но в моем случае простое удаление ресурса и его загрузка снова решили мою проблему. Я подозреваю, что я мог настроить их как несколько идентификаторов. Внизу страницы есть кнопка "Другой идентификатор", и я думаю, что это была моя проблема. Это можно увидеть, когда вы наведете курсор на файл, у которого несколько имен в качестве идентификаторов (даже если они совпадают).

Другие вопросы по тегам